タグ付けされた質問 「ansible-playbook」

12
Ansibleプレイブックを1台のマシンに安全に制限しますか?
コンピューターの小さなグループでの簡単なユーザー管理タスクにAnsibleを使用しています。現在、私はプレイブックを設定しhosts: allていて、hostsファイルは単一のグループであり、すべてのマシンがリストされています。 # file: hosts [office] imac-1.local imac-2.local imac-3.local 私は頻繁に1台のマシンをターゲットにしなければならないことに気づきました。このansible-playbookコマンドは、次のように再生を制限できます。 ansible-playbook --limit imac-2.local user.yml しかし、それは、特に潜在的に破壊的なプレイブックにとっては、壊れやすいもののようです。limitフラグを除外すると、プレイブックがどこでも実行されることになります。これらのツールはたまにしか使用されないので、間違いのない再生に一歩踏み出す価値があるように思われます。 プレイブックの実行を1台のマシンに制限するためのベストプラクティスはありますか?理想的には、いくつかの重要な詳細が省略された場合、プレイブックは無害である必要があります。


19
Ansibleは/ bin / sh:1で失敗する:/ usr / bin / python:not found
今まで見たことのないエラーが発生しています。コマンドとエラーは次のとおりです。 $ ansible-playbook create_api.yml PLAY [straw] ****************************************************************** GATHERING FACTS *************************************************************** failed: [104.55.47.224] => {"failed": true, "parsed": false} /bin/sh: 1: /usr/bin/python: not found TASK: [typical | install required system packages] ***************************** FATAL: no hosts matched or all hosts have already failed -- aborting PLAY RECAP ******************************************************************** to retry, use: --limit @/Users/john/create_api.retry …

5
Ansibleがホームディレクトリに.retryファイルを作成しないようにするにはどうすればよいですか?
Ansibleがホストに対してプレイの実行に問題がある場合、ホストの名前を「.retry」で終わるユーザーのホームディレクトリ内のファイルに出力します。これらは使用されないことが多く、混乱を招くだけです。それらをオフにするか、別のディレクトリに配置する方法はありますか?

7
Ansible Galaxyロールを自動的にインストールする方法は?
Ansibleのすべてのプレイブック/ロールは、私のgitリポジトリにチェックインされています。 ただし、Ansible Galaxyの役割の場合は、Ansibleを実行するすべてのマシンに1つずつ明示的にダウンロードする必要があります。 実行時に不足している役割についてAnsibleが文句を言うまで、必要なAnsible Galaxyの役割を事前に正確に把握することはさらに困難です。 Ansible Galaxyロールの依存関係を管理するにはどうすればよいですか?Ansibleの残りのコードとともにgitリポジトリにチェックインするか、新しいマシンでAnsibleを実行したときに自動的に識別されてダウンロードされるようにしたいのですが。


11
コマンドラインからのAnsibleプレイブックのホスト変数のオーバーライド
これは私が使用しているプレイブックの一部です(server.yml): - name: Determine Remote User hosts: web gather_facts: false roles: - { role: remote-user, tags: [remote-user, always] } 私のホストファイルには、異なるサーバーのグループがあります。 [web] x.x.x.x [droplets] x.x.x.x 今、私が実行したいansible-playbook -i hosts/<env> server.ymlと上書きhosts: webからserver.yml、この脚本を実行します[droplets]。 server.yml直接編集せずに、1回限りの変更としてオーバーライドできますか? ありがとう。

4
変数をAnsibleのファイルに書き込む
URIモジュールを介してJSONを取得していて、受信したコンテンツをファイルに書き出したいです。コンテンツを取得してデバッガに出力できるので、コンテンツが受信されたことがわかりますが、ファイルを書き込むためのベストプラクティスがわかりません。

5
Ansibleプレイブックとロール
Ansibleドキュメントによると、脚本は 次のとおりです。 ...既存の既存のシステムとは異なり、非常にシンプルな構成管理とマルチマシン展開システムの基盤であり、複雑なアプリケーションの展開に非常に適しています。 また、同じドキュメントによると、役割 は次のとおりです。 ...既知のファイル構造に基づいて特定のvars_files、タスク、およびハンドラーを自動的にロードする方法。コンテンツを役割ごとにグループ化すると、役割を他のユーザーと簡単に共有することもできます。 ただし、これらと異なる使用例の違いはすぐにはわかりません。たとえば、/etc/ansible/hostsファイルを次のように構成するとします。 [databases] mydb01.example.org mydb02.example.org [mail_servers] mymail01.example.org mymail_dr.example.org ...次に、この「[databases]」エントリは何ですか... 役割?または、どこかにプレイブックYAMLファイルの名前がありますか?または、他の何か?!? これらの違いを誰かに説明していただければ、Ansibleに対する私の理解が大幅に高まるでしょう。 Playbook vs Role vs [databases]および同様のエントリ/etc/ansible/hosts PlaybookがYAMLファイル内で定義されている場合、役割はどこに定義されていますか? ansible.cfgAnsibleサーバーでの生活以外に、利用可能なPlaybooks / RolesでAnsibleを追加/構成するにはどうすればよいですか?たとえば、を実行するとansible-playbook someplaybook.yaml、Ansibleはどのようにしてそのプレイブックの場所を知っていますか?

4
Ansible:変数をファイルコンテンツに設定
ansible-playbook変数をファイルの内容に設定するためにec2モジュールを使用しています。これが私が現在やっている方法です。 ファイル名を持つVar catファイルへのシェルタスク の結果を使用catしてec2モジュールに渡します。 プレイブックの内容の例。 vars: amazon_linux_ami: "ami-fb8e9292" user_data_file: "base-ami-userdata.sh" tasks: - name: user_data_contents shell: cat {{ user_data_file }} register: user_data_action - name: launch ec2-instance local_action: ... user_data: "{{ user_data_action.stdout }}" これを行うにはもっと簡単な方法があると思いますが、Ansibleのドキュメントを検索しているときに見つけられませんでした。

6
Ansible:コマンドのstdoutを新しい変数に保存しますか?
プレイブック内で、外部コマンドの出力を保持する変数を作成したいと思います。その後、いくつかのテンプレートでその変数を利用したいと思います。 プレイブックの関連部分は次のとおりです。 tasks: - name: Create variable from command command: "echo Hello" register: command_output - debug: msg="{{command_output.stdout}}" - name: Copy test service template: src=../templates/test.service.j2 dest=/tmp/test.service - name: Enable test service shell: systemctl enable /tmp/test.service - name: Start test service shell: systemctl start test.service これが私のテンプレートだとしましょう: [Unit] Description=MyApp After=docker.service Requires=docker.service [Service] TimeoutStartSec=0 …

5
ansibleを実行しているユーザーの名前を持つ変数を取得するにはどうすればよいですか?
Ansibleスクリプトを実行しているユーザーの名前(例:tlau)を取得し、そのユーザー名と現在の日時(例:tlau-deploy-2014-10)に基づいてリモートシステム上に展開ディレクトリを作成する展開プロセスのスクリプトを作成しています-15-16:52)。 これはAnsibleファクト(LOGNAMEやSUDO_USERなど)で利用できると思われるかもしれませんが、これらはすべて「root」またはリモートシステムへのsshに使用されているデプロイメントIDのいずれかに設定されています。これらのいずれにも、現在ansibleプロセスを実行しているローカルユーザーは含まれていません。 Ansibleプロセスを実行しているユーザーの名前を取得してプレイブックで使用するスクリプトを作成するにはどうすればよいですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.