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

Ansibleは、コンピューターを構成および管理するためのオープンソースソフトウェアプラットフォームです。マルチノードソフトウェアの展開、アドホックタスクの実行、および構成管理を組み合わせています。

3
Ansibleでハンドラーの実行を常にトリガーする
Ansibleを使用して開発サーバーをプロビジョニングしています。 常にいくつかのサービスを開始してほしい。この目的のハンドラーがありますが、条件なしでハンドラーの実行をトリガーするための最良の方法は何ですか? このようなもの: tasks: - name: Trigger handler run_handler: name=nginx-restart
33 ansible 

6
AnsibleでSSHポートの変更を処理する方法
新しいサーバーインスタンスのセットアッププロセスを自動化するためにAnsibleを使用しようとしています。セットアップタスクの1つでデフォルトのSSHポートが変更されるため、ホストリストを更新する必要があります。 デフォルトのSSHポートへの接続を確立できなかった場合、指定されたポートへのAnsibleフォールバックを使用してこれを自動化することは可能ですか?

8
認証エラーが多すぎてSSHが中止する
この単純なプロビジョニングスクリプトを実行しようとしていますが、実行vagrant upしてからvagrant provisionコマンドを実行するとエラーが発生します。 私がやった/etc/ansible/hostsファイルを作成する必要があることを読んで、それを埋めます: [vagrant] 192.168.222.111 私のSSH構成(一部の詳細を削除): Host default HostName 127.0.0.1 User vagrant Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile /Users/ashleyconnor/.vagrant.d/insecure_private_key IdentitiesOnly yes LogLevel FATAL Host server HostName XXX.XXX.XXX.XXX User ash PreferredAuthentications publickey IdentityFile ~/.ssh/ash_ovh Host deployer HostName XXX.XXX.XXX.XXX User deployer PreferredAuthentications publickey IdentityFile ~/.ssh/deployer_ovh Host bitbucket.org PreferredAuthentications …

2
Ansible変数の値を小文字から大文字に変換します
LinuxシステムをActive Directoryに参加させるためのプレイブックに取り組んでいます。ansible_hostnameの値を大文字に変換する方法が見つからないようです。実行する必要があるコマンドの1つでは、ホスト名を大文字で指定する必要があります。
25 linux  ansible 

2
Ansibleはシェルスクリプトで 'rm -rf /'の実行を防止します
これは、このデマの質問に基づいています。説明されている問題は、次の効果をもたらすものを含むbashスクリプトを持っていることです。 rm -rf {pattern1}/{pattern2} ...両方のパターンに1つ以上の空の要素が含まれる場合rm -rf /、元のコマンドが正しく転写され、OPがパラメーター展開ではなくブレース展開を行っていると仮定して、少なくとも1つのインスタンスに展開されます。 OPによるデマの説明では、彼は次のように述べています。 コマンド[...]は無害ですが、ほとんど誰も気付いていないようです。 Ansibleツールはこれらのエラーを防止しますが[...]しかし[...]誰もそれを知らないようでした。さもなければ彼らは私が説明したことが起こらないことを知っているでしょう。 したがってrm -rf /、ブレース展開またはパラメーター展開のいずれかを介してコマンドを発行するシェルスクリプトがあると仮定すると、Ansibleを使用するとそのコマンドの実行が妨げられるというのは本当ですか? rm -rf /あなたがそれを行うためにAnsibleを使用している限り、root権限で実行することは本当に「無害」ですか?
23 linux  bash  ansible  rm 

6
Ansibleでapt-get autoremoveを実行する
私はansibleでEC2サーバーの群れを維持しています。サーバーは定期的に更新され、aptモジュールを使用してアップグレードされます。 サーバーを手動でアップグレードしようとすると、次のメッセージが表示されました。 $ sudo apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages were automatically installed and are no longer required: linux-headers-3.13.0-29 linux-headers-3.13.0-29-generic linux-headers-3.13.0-32 linux-headers-3.13.0-32-generic linux-image-3.13.0-29-generic linux-image-3.13.0-32-generic Use 'apt-get autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to …
23 apt  ansible 

2
特定のユーザーとしてAnsibleタスクを実行する
プレイブックを実行しているユーザーとは異なるユーザーとして特定のAnsibleタスクを実行しようとしています。私の.ymlファイルは次のようになります。 --- - hosts: staging_servers tasks: - name: check user remote_user: someusername shell: whoami このタスクを実行whoamiすると、コマンドがタスクで定義したものとは異なるユーザーを返すことがわかります(正確には、hostsというファイルで定義されているユーザーを返しますubuntu)。 私もこのようなタスクを定義しようとしました: --- - hosts: staging_servers tasks: - name: check user sudo: yes sudo_user: someusername shell: whoami しかし、その後、「Missing sudo password」エラーが発生しsudoersますが、パスワードを要求しないようにリモートマシン上でsomeusername ALL=(ALL) NOPASSWD:ALLコマンドを言って発行するファイル内の行があります。sudosomeusername それでは、hostsファイルまたはroot自分で定義されたユーザーではない別のユーザーとして特定のタスクを実行するにはどうすればよいですか?

4
Ansible:デバッグとしてではなく、プレイブックの再生中に「catファイル」を作成して出力を画面にエクスポートできますか?
ユーザーごとにGoogle認証システムをインストールして構成するプレイブックを作成しました。 catgoogle_authenticator構成ファイルへのプレイブックの最後のステップが必要です。 「デバッグ」モジュールを使用すると、画面にデータを表示できますが、デバッグメッセージとしてのみ取得できます。 TASK: [debug var=details.stdout_lines] **************************************** ok: [localhost] => { "details.stdout_lines": [ "ZKMFTE2ADYA2OYCH", "\"RATE_LIMIT 3 30", "\" DISALLOW_REUSE", "\" TOTP_AUTH", "12920994", "88224784", "69464205", "38144121", "45634120" ] } 私はそのようなことができるとオンラインで読みました: - name: Print to screen google authenticator details command: /bin/cat {{ google_authenticator_secret_file_location }} register: details tags: google_2fa_user - debug: msg="{{ details.stdout_lines …

6
Ansibleを使用してrpmパッケージをインストールする
Ansibleを使用してリモートマシンに.rpmパッケージをインストールするにはどうすればよいですか? 明らかな解決策はcommandモジュールを使用することですが、それは少しばかげています。また、1つのパッケージだけにyumリポジトリを設定することは避けたいと思います。 この問題に対するより実用的なアプローチはありますか?
22 rpm  ansible 

2
構成管理:プッシュベースのトポロジとプルベースのトポロジ
PuppetやChefなどのより確立された構成管理(CM)システムは、プルベースのアプローチを使用します。クライアントは、更新のために集中マスターを定期的にポーリングします。それらのいくつかは、提供マスターレスのそれは(Saltstack)や「以下スケーラブル」(人形)の生産のためではない」であること(そう、プッシュベース)にもアプローチしますが、状態。私が知っている唯一のシステムは、最初からプッシュベースです。次点のAnsibleです。 プルベースのシステムの特定のスケーラビリティの利点は何ですか?プッシュエージェントよりもプルマスターを追加するほうが簡単なのはなぜですか? たとえば、agiletesting.blogspot.nlは次のように記述します。 「プル」システムでは、クライアントは互いに独立してサーバーに接続するため、システム全体は「プッシュ」システムよりもスケーラブルです。 一方、Rackspace は、プッシュベースのモデルで15Kシステムを処理できることを実証しています。 infastructures.orgの書き込み: SUP、CVSup、rsyncサーバー、またはcfengineなどのツールを使用して、インフラストラクチャを維持するためのプル方法論を誓います。クライアントに変更をプッシュするのではなく、個々のクライアントマシンは、起動時およびその後定期的にゴールドサーバーをポーリングして、独自の回転レベルを維持する必要があります。この観点を採用する前に、ssh、rsh、rcp、およびrdistに基づいたプッシュベースの広範なスクリプトを開発しました。rコマンド(またはssh)で見つかった問題は次のとおりです:rコマンドベースのスクリプトを実行してターゲットマシンに変更をプッシュすると、30を超えるターゲットホストがある場合、そのうちの1つがいつでもダウンしている。委託されたマ​​シンのリストを維持することは悪夢になります。これを修正するコードを書く過程で、あなたは対処するための精巧なラッパーコードになります:死んだホストからのタイムアウト。デッドホストのロギングと再試行。並列ジョブをフォークして実行し、適切な時間内に多くのホストにヒットしようとします。そして最後に、ソースマシンで使用可能なすべてのTCPソケットをすべてのアウトバウンドrshセッションで使い果たすケースを検出して防止します。その場合、将来インストールするすべての新しいホストのインストールイメージに行ったばかりのことをすべて取得するだけでなく、死んで明日再構築する必要があるすべてのホストに対してそれを繰り返すという問題があります。トラブルを経てrコマンドベースのレプリケーションを実装しましたが、それだけの価値がないことがわかりました。インフラストラクチャをrコマンドで再度管理したり、他のプッシュメカニズムで管理したりする予定はありません。プルベースの方法と同様にスケーリングしません。並列ジョブをフォークして実行し、適切な時間内に多くのホストにヒットしようとします。そして最後に、ソースマシンで使用可能なすべてのTCPソケットをすべてのアウトバウンドrshセッションで使い果たすケースを検出して防止します。その場合、将来インストールするすべての新しいホストのインストールイメージに行ったばかりのことをすべて取得するだけでなく、死んで明日再構築する必要があるすべてのホストに対してそれを繰り返すという問題があります。トラブルを経てrコマンドベースのレプリケーションを実装しましたが、それだけの価値がないことがわかりました。インフラストラクチャをrコマンドで再度管理したり、他のプッシュメカニズムで管理したりする予定はありません。プルベースの方法と同様にスケーリングしません。並列ジョブをフォークして実行し、適切な時間内に多くのホストにヒットしようとします。そして最後に、ソースマシンで利用可能なすべてのTCPソケットをすべてのアウトバウンドrshセッションで使い果たすケースを検出して防止します。その後、将来インストールされるすべての新しいホストのインストールイメージに行ったばかりのことをすべて取得し、死んで明日再構築する必要があるすべてのホストに対してそれを繰り返すという問題がまだあります。トラブルを経てrコマンドベースのレプリケーションを実装しましたが、それだけの価値がないことがわかりました。インフラストラクチャをrコマンドで再度管理したり、他のプッシュメカニズムで管理したりする予定はありません。プルベースの方法と同様にスケーリングしません。そして最後に、ソースマシンで利用可能なすべてのTCPソケットをすべてのアウトバウンドrshセッションで使い果たすケースを検出して防止します。その後、将来インストールされるすべての新しいホストのインストールイメージに行ったばかりのことをすべて取得し、死んで明日再構築する必要があるすべてのホストに対してそれを繰り返すという問題がまだあります。トラブルを経てrコマンドベースのレプリケーションを実装しましたが、それだけの価値がないことがわかりました。インフラストラクチャをrコマンドで再度管理したり、他のプッシュメカニズムで管理したりする予定はありません。プルベースの方法と同様にスケーリングしません。そして最後に、ソースマシンで利用可能なすべてのTCPソケットをすべてのアウトバウンドrshセッションで使い果たすケースを検出して防止します。その後、将来インストールされるすべての新しいホストのインストールイメージに行ったばかりのことをすべて取得し、死んで明日再構築する必要があるすべてのホストに対してそれを繰り返すという問題がまだあります。トラブルを経てrコマンドベースのレプリケーションを実装しましたが、それだけの価値がないことがわかりました。インフラストラクチャをrコマンドで再度管理したり、他のプッシュメカニズムで管理したりする予定はありません。プルベースの方法と同様にスケーリングしません。その後、将来インストールされるすべての新しいホストのインストールイメージに行ったばかりのことをすべて取得し、死んで明日再構築する必要があるすべてのホストに対してそれを繰り返すという問題がまだあります。トラブルを経てrコマンドベースのレプリケーションを実装しましたが、それだけの価値がないことがわかりました。インフラストラクチャをrコマンドで再度管理したり、他のプッシュメカニズムで管理したりする予定はありません。プルベースの方法と同様にスケーリングしません。その後、将来インストールされるすべての新しいホストのインストールイメージに行ったばかりのことをすべて取得し、死んで明日再構築する必要があるすべてのホストに対してそれを繰り返すという問題がまだあります。トラブルを経てrコマンドベースのレプリケーションを実装しましたが、それだけの価値がないことがわかりました。インフラストラクチャをrコマンドで再度管理したり、他のプッシュメカニズムで管理したりする予定はありません。プルベースの方法と同様にスケーリングしません。またはそのことについて他のプッシュメカニズムを使用します。プルベースの方法と同様にスケーリングしません。またはそのことについて他のプッシュメカニズムを使用します。プルベースの方法と同様にスケーリングしません。 それは、アーキテクチャの問題ではなく、実装の問題ではありませんか?スレッドプルサーバーよりもスレッドプッシュクライアントを記述する方が難しいのはなぜですか?

7
ansibleがログファイルにパスワードを書き込むのを止めるにはどうすればよいですか?
MySQLサーバーをセットアップしていmysql-rootますが、インストール中にAnsibleにパスワードを設定させたいです。 インターネットの助けを借りて、私はこの解決策を思いつきました。 - name: Set MySQL root password before installing debconf: name='mysql-server' question='mysql-server/root_password' value='{{mysql_root_pwd | quote}}' vtype='password' - name: Confirm MySQL root password before installing debconf: name='mysql-server' question='mysql-server/root_password_again' value='{{mysql_root_pwd | quote}}' vtype='password' - name: Install Mysql apt: pkg=mysql-server state=latest mysql_root_pwdAnsible Vaultからロードされた変数です。これは正常に動作しますが、サーバー上ではログに多くの行があります: Apr 10 14:39:59 servername ansible-debconf: Invoked with value=THEPASSWORD vtype=password …
22 security  ansible 

4
巨大な環境でのansibleによるiptables管理
1つのポイントからiptablesを管理し、ローカルサーバー上で何かを編集する機能を持つ最良の方法は何ですか。 すべてのサーバーに集中するいくつかのルールを追加する必要がありますが、独自のルールセットを持つ特定の要件を持つ特定のサーバーがあります。 ansibleで一元管理され、ローカルサーバーで管理される複数のincludeを持つbashスクリプトについて考えました。それは良いアプローチですか?それとももっと良いものがありますか? 特定のホスト間で差が大きすぎるため、ansible用のyml2テンプレートを作成できません。 iptablesの集中管理の例を提供してください。
20 iptables  ansible 


3
ファイアウォールの背後にあるLinuxコンピューターのクラスターの管理
私の会社の製品は、基本的には、Linuxボックス(Ubuntu)であり、ソフトウェアを実行している他の誰かのネットワーク内にあります。これまでのところ、私たちは25個未満のボックスを野生で使用し、TeamViewerを使用してそれらを管理していました。 現在、これらのボックスのうち1000個を出荷しようとしていますが、TeamViewerはオプションではありません。私の仕事は、これらのボックスにアクセスし、それらのソフトウェアを更新する方法を見つけることです。このソリューションは、ファイアウォールを通過し、何を持っている必要があります。 私が検討した: 1.クラウド内のサーバーへのSSHリバーストンネルを確立する自作ソリューション(Linuxサービスなど)、およびそれらを追跡して接続できるクラウド内の別のサービス。 これは明らかに労働集約的であり、率直に言って、他の多くの企業がすでにこの問題に直面しているに違いないので、車輪を再発明したように感じます。それでも、私たちがそれで素晴らしい仕事をするかどうかはわかりません。 2.パペット、シェフ、OpenVPNなどのツール できる限り読み込もうとしましたが、マーケティングスピーチを十分に浸透して、当然の選択を理解することはできません。 私たち以外の誰もこれらのボックスに接続する必要はありません。関連する経験があり、私に指針を与えることができる人はいますか?

6
Ansible:特定の条件が満たされた場合、varsファイルで変数を条件付きで定義します
group_varsに定義された変数の値(True / False)に応じて、varsファイルにいくつかの変数を定義しようとしています。それらの値は、グループ変数の値に依存します。 私の現在のvarファイルは次のようになります。 {% if my_group_var %} test: var1: value var2: value ... varn: value {% else %} test: var1: other_value var2: other_value ... varn: other_value {% endif %} 役割ごとに、このファイルに定義された変数を使用しています。 私のテストプレイブックは次のようになります。 - name: blabla hosts: blabla vars_files: - <path>/test_vars.yml roles: blabla プレイブックの実行後に表示されるエラーは次のとおりです。 {% if my_group_var %} ^ here exception …

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