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

クラウドプロビジョニング、構成管理、アプリケーションのデプロイなどのトピックでのAnsibleの使用に関連する、オープンソースの自動化エンジンであるAnsibleに関する質問には、このタグを使用してください。


5
Ansibleセットアップでプロビジョニングと構成をテストする方法
プロビジョニングと構成を扱うAnsibleセットアップに回復力を組み込むことを検討しています。 私は物事の構成側でいくつかのテスト方法を理解していますが、物事のプロビジョニング側でテストを実装する最善の方法と、このタイプの実装に役立つツールがあるかどうか疑問に思っています。 現在、私たちのテストの多くは、プレイブック中に連続して行われます。これは、「サービスが出てきました。VIPが利用可能です。この非同期タスクが終了しました」などです。アプリケーション層とプロビジョニング層の両方での構成(VM構成など)。Ansibleは構成のドリフトを処理するための最良のツールではないことは承知していますが、あなた自身の意見を知りたいと思います。 プロセスをさらに完全に自動化するものがあれば。(毎日スラックで報告するいくつかのいスクリプトがあります)。 注:現在、再プロビジョニングが発生する可能性があるいくつかの条件(バックアップからの再構築、重要なシステムの問題など)がありますが、通常はいくつかのansible構成タスクをループし、それ以上は考えません。

4
ansible-vaultパスワードを置く場所
私たちは、gitでパスワードやキーの漏洩を防ぐために、プロジェクトでansible vaultを使用することを計画しています。 考えは、すべての機密データをプレーンファイルに入れ、パスワードを使用してansible-vaultでこのファイルを暗号化してからgitにプッシュすることです。 ファイルを復号化するには、ボールトのパスワードをansibleに渡す必要があります。3つの可能性について考えています。 サーバー環境変数内に保存します ansible-playbookコマンドのオプションとして渡します バージョン非対応のファイルに保存します。 ansible-vaultパスワードを保存するための最良の(そして安全な)方法である他のオプションはありますか?

1
Ansible vaultシークレット用のGit clean / smudgeフィルター
ansible-vaultコマンドを使用して、秘密を含むファイルを自動的に暗号化および復号化するために、gitでclean / smudgeフィルターを設定しようとしています。 ansible-vaultコマンドの特徴は、it等ではないことです(同じデータで呼び出されるたびに異なるバイナリを作成します)。 このブログページで提案されている実装から始めました。残念なことに、それは正しく機能しませんでした。汚れが呼び出されると(git checkout、または単にgitステータス)、秘密ファイルはgit用に変更されたように見えます。 だから、gitがインデックスにあるバイナリをクリーンフィルター処理された現在のファイルと比較するのではないかと思い、これらのスクリプトを次のように構築しようとしました。 #!/bin/sh -x # clean filter, it is invoked with %f if [ ! -r "$HOME/.vault_password" ]; then exit 1 fi tmp=`mktemp` cat > $tmp # get the plain text from the binary in the index tmphead=`mktemp` git show HEAD:$1 > $tmphead contenthead=`echo "embedded" …

2
Ansibleでホストキーチェックをバイパスできますか?
私は、任意のポート転送ポートで動作するように微妙なハックでAnsibleプレイブックを実行しています(したがって、多くのマシンに直接アクセスせずに1台のマシンを使用できます)。 ansible_port変数を変更するための事前タスクがあるので、実際のタスクとロールの実行を開始すると、ランダムポート上のローカルホストのホストキーを受け入れるように求められます。 私は単純であり、セキュリティを気にしないので、sshが自動受け入れてリダイレクト/dev/null(またはロギング用の別のファイル)したいです。 これは可能ですか?
19 ansible 

3
Ansibleと比較したPuppetの制限は何ですか?
PuppetとAnsibleの違い、特にAnsibleと比較してどのようなPuppetの制限があるのか​​を理解したいと思います。 Puppetでできないことはありますが、Ansibleではできますか?言い換えれば、なぜ一部の人々がPuppetからAnsibleに移行するのでしょうか?

4
Ansible:開いているポートのtelnetチェックに利用できる他のオプションは?
私はAnsibleが初めてです。これが私の仕事です... 400以上のホストがあり、5つの異なるポートがエンドからWebサーバーに開いているかどうかを確認する必要があります。 個別に、ログインして実行できました。 telnet mywebserver.com 443 telnet mywebserver.com 80 telnet mywebserver.com 8443 ..等々.. どのモジュールまたはプラグインをAnsibleで使用できるので、これを自動化し、結果(開いているポートまたは閉じているポート)をAnsibleサーバーに報告させることができますか?
15 ansible  testing  ports 

2
一度に1つのホストでansibleを実行し、障害でブレークする方法
Ansible Playbookを手に入れて、いくつかの不安定なデバイスを順番に更新したいと思っています。を使用できますserial:1が、エラーが発生した場合はプレイブックを完全に停止し、エラーを蓄積する代わりに続行する前に修正できるようにします。 また、停止したホストと同じホストでプレイブックを再起動したいと思います。現在Ansible v2.0を使用していますが、そのような機能が新しいバージョンでのみ使用可能な場合は、新しいバージョンに切り替えることもできます。
15 ansible 

1
Ansibleを使用してAWSのスポットインスタンスのインベントリをどのように管理しますか
私はAnsibleが初めてで、Chefでの経験があります。私は環境を管理するためにAnsibleを学び、使用することを検討しています。 AWSスポットインスタンスのインベントリを管理するためのベストプラクティスは何でしょうか? たとえば、スポットインスタンスがシャットダウンされると、古いIPはホストのインベントリに関係なくなります。 弾力性のある環境のユースケースのために、他の代替アプローチはありますか?

3
同じアイテムのリストで複数のAnsibleタスクを実行する
私はansibleプレイブックを使用して、サイトのリスト用にApacheを構成しています。プレイブックでは、各サイトの仮想ホスト構成テンプレートを所定の場所にコピーしてから、次を使用して各サイトを有効にする必要がありますa2ensite。 - name: Install apache site conf template: src=apache-sites-{{item}}-conf.j2 dest=/etc/apache2/sites-available/{{item}}.conf mode=0644 with_items: - sitea - siteb - sitec - sited - name: Enable site apache conf command: a2ensite {{item}} args: creates: /etc/apache2/sites-enabled/{{item}}.conf with_items: - sitea - siteb - sitec - sited タスクごとに同じリストを繰り返す必要がありません。同じアイテムリストで両方のタスクを実行するようにハンドブックを構成するにはどうすればよいですか?
12 ansible 

2
Ansibleの `--vault-password-file`に相当する設定は何ですか?
ansible-playbookのヘルプによると、--user=REMOTE_USERsshユーザーの定義に使用できますが、host- ansible_ssh_user: REMOTE_USERvarまたはgroup_varsのいずれかで定義することもできます。 質問 どのような変数が必要それを防ぐために、基またはhost_varsディレクトリのいずれかに定義することは--vault-password-file実行中に定義する必要がありますかansible-playbook? 試み 構成ansible_vault_password_file: ~/.vault_pass.txtで定義されている場合、復号化は失敗します。 ERROR! Decryption failed on /path/to/vault このドキュメントには関連するボールト変数が見つかりませんでした
12 ansible 

3
事故を軽減するためにAnsibleデプロイメントを保護する方法は?
最近、Amazon S3はus-east-1リージョンで大規模な停止がありました。Ansibleまたは同様のツールでメンテナンスプレイブックを実行しているときに、スペルミスが原因であると思われます。次のように、Ansible-playbookの周りにシェルスクリプトラッパーを配置できます。 #!/bin/bash /usr/bin/ansible-playbook "$@" --list-hosts --list-tasks read -p "Are you sure? (y/n) " answer test "$answer" = "y" || exit 0 exec /usr/bin/ansible-playbook "$@" しかし、安全性を向上させ、会社の重大な停止を引き起こすエラーの可能性を減らすために使用する他のいくつかの方法は何ですか。
12 ansible  process 

2
資格情報をファイルに保存しないで、Ansible Azureプレイブックを実行するにはどうすればよいですか?
バックグラウンド Azureインフラストラクチャのプロビジョニングと管理には、Ansibleを使用しています。現時点では、Ansibleを「手動」で実行しています。つまり、さまざまな自動化タスクのプレイブックを手動で実行しています。CIインフラストラクチャはありません。 おそらく関係ありませんが、動的スクリプトを使用して在庫を管理していますazure_rm.py。 可能な限り安全であることをお勧めします。 Vaultのパスワードを~/.vault_passローカルファイルに保存しないでください。 Azureシークレットを格納しないでください ~/.azure/credentials 安全なものをに保管しないでください.bashrc。 このようなシナリオでは、上記のガイドラインに従いながら、プレイブックがAzureシークレットに確実にアクセスできるようにするための一貫した戦略を思い付くことができません。 質問 プレイブックがアクセスできるようにしながら、Ansible VaultとAzureの資格情報をファイルに保存しないようにするにはどうすればよいですか? 私が試したこと これまでのところ、次のようなラッパースクリプトを考え出しました。 ユーザーにVaultパスワードを要求する これを使用して、保管されたシェルスクリプトを復号化します Azure環境変数を環境にロードするスクリプトを評価します。 このように設定された環境でプレイブックを実行します。 そこにもっと良い(よりエレガントで、より複雑でなく、より「Ansible」)ソリューションはありますか?

1
Ansibleで増加するポート番号を確定的かつ再現可能に割り当てる方法は?
Ansibleは初めてですが、特定の環境でセットアップするサービスに対応する一連のプレイブックを維持する必要があります。それらにはポート、証明書などを割り当てる必要があります。これにより、本質的に常に同じ名前のリストとそれらへの割り当てを含む多くのファイルが作成されます。 多くの場合、service_nameを変数として簡単に再利用できると思いますが、IP、ポート、またはその他の数値識別子にマッピングするとき、再現可能な方法でそれらに異なる番号を決定論的に割り当てる方法をまだ理解していません。新しいサービスが追加されても同じです。SQLiteデータベースを使用してサービスを保存し、IDから値を生成することを検討しましたが、Ansibleと統合する方法がわかりません。 増加するポート番号を割り当てることは、まったく新しいことではないと思います。これは、日常的に多くのシステム管理者が行うことなので、そのための方法がいくつか必要です。 編集:次のgroup_vars/all.ymlようにポート番号などを直接追加します。 ports: service1:1024 service2:1025 service3:1026 追加の刑務所(BSD)を作成し、実行されるロールに依存するため、インベントリは自動的に生成されます。
12 ansible  ports 

3
Ansibleでwith_itemsループを並行して実行する方法はありますか?
Ansible 2.2を実行していますが、問題がなければアップグレードできます。 私はこれを見て、とても興奮していましたが、このバージョン(または任意のバージョン)のAnsibleドキュメントには含まれていないようです。 私が解決しようとしている問題は、Centosボックスで管理する必要があるユーザーが1000人いることです。 このタスクを連続して実行するにはかなり時間がかかります。さらに厄介なことに、ユーザーモジュールの「expires」コマンドは常に変更されたものとしてマークを付けるため、すべてが変更されたように見えます。 これも有望に見えましたが、with_itemsループで各コマンドを実行するのに同じ時間を要し、それ以上速くなりませんでした(最後に到達するのに十分な時間待機することを気にしませんでした)。 タスクのスキップが高速になりました(Ansible 2.0の場合よりもはるかに高速です)。これを並行して実行する方法がわからない場合は、戻って無意味なタスクをスキップする方法を考えてみます。それ以外の場合は失敗します。独自のモジュールを作成します。しかし、私はこれすべてをAnsibleでもっと速くできるように思えます。 これは私が並行して実行したいもの host_authorizationsで、ユーザー名と他のデータのリストです。 - name: Create/modify OS user accounts user: name={{ item.username }} group=sshusers shell=/bin/bash home="/home/selinux-modules/{{ item.username }}" state=present expires={{item.expiredate|default(omit)}} with_items: "{{ host_authorizations }}" tags: full_maintenance
12 ansible 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.