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

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

7
ansibleを介してホストSSHキーを生成する方法は?
ansible(およびssh-keygen)を介して少数のリモートサーバーでSSHホストキーを再生成しようとしていますが、ファイルが表示されないようです。プレイブックは正常に実行されますが、リモートのファイルは変更されません。 echo -eこれらのリモートはUbuntu 14.04を実行していて、python-pexpect使用可能なバージョンのバージョンが(ansibleによると)ないため、ハッカーに頼る必要があります。 何が欠けていますか?私のプレイブックと出力は以下の通りです: プレイブック --- - hosts: all become: true gather_facts: false tasks: - name: Generate /etc/ssh/ RSA host key command : echo -e 'y\n'|ssh-keygen -q -t rsa -f /etc/ssh/ssh_host_rsa_key -C "" -N "" register: output - debug: var=output.stdout_lines - name: Generate /etc/ssh/ DSA host key command : …
11 ansible  ssh-keys 

3
特定のAnsibleタスクの冗長性を減らして、パスワードをsyslogに漏らさないようにするにはどうすればよいですか?
ときどき、Ansible lineinfileまたはblockinfileモジュールを使用して、パスワードを構成ファイルに書き込みたいと思います。その場合、パスワードが含まれている行全体またはブロック全体がで終わりますsyslog。 syslogパスワードを安全に保管する場所とは考えていないので、Ansibleにパスワードを漏らさないようにするにはどうすればよいsyslogですか?これを行う方法があることを願っています。そうでない場合、これはAnsibleの大きなセキュリティ問題であると考えます。 たとえば、次のアドホックコマンドを使用してそれを再現できます。 ansible localhost -m blockinfile -a 'dest=/tmp/ansible_password_leak create=yes block="Password = {{password}}"' -e 'password=secret' これが最終的に何であるかですsyslog: ansible-blockinfile: Invoked with directory_mode=None force=None remote_src=None insertafter=None owner=None follow=False marker=# {mark} ANSIBLE MANAGED BLOCK group=None insertbefore=None create=True setype=None content=None serole=None state=present dest=/tmp/ansible_password_leak selevel=None regexp=None validate=None src=None seuser=None delimiter=None mode=None backup=False block=Password = secret …

3
ホスト間でSSH公開鍵を配布する
私はAnsibleでいくつかのマシンをセットアップしていて、それらの間のパスワードレス接続を有効にする必要があります。データベースマスターといくつかのスレーブがあります。最初のレプリケーションでは、スレーブはマスターにSSHで接続し、データベースのコピーを取得する必要があります。すべてのスレーブの公開鍵をマスターauthorized_keysファイルに動的に追加するための最良の方法は何ですか。 スレーブの公開鍵を変数として提供し、authorized_keyモジュールを介してそれらを追加することをすでに考えました。しかし、私はキーのリストを維持する必要があります。スレーブグループをもう1つホストに追加するだけで、残りのホストが自動的に機能するアプローチを探しています。 何か案は? 更新: これまでのところ、私は次の擬似コードを取得しました: # collect public keys from slave machines - name: collect slave keys {% for host in groups['databases_slave'] %} shell: /bin/cat /var/lib/postgresql/.ssh/id_rsa.pub register: slave_keys #how to add to an array here? {% endfor %} # Tasks for PostgreSQL master - name: add slave public key sudo: …

3
ansible blockinfile無効マーカー
私はansibleの初心者ですが、blockinfile関数を正常に使用できました。しかし、マーカーが挿入されないようにする方法がわかりません。ドキュメントを読みましたが、説明がありませんでした。 これは、blockinfileが書き込むすべてのファイルに表示されます。 # BEGIN ANSIBLE MANAGED BLOCK # END ANSIBLE MANAGED BLOCK
11 ansible 

4
ansibleデプロイ中にnginx.confを検証する
Ansibleでプロビジョニングされた単一のサーバーで複数のサイトを実行しています。 私のAnsibleタスクはおおよそ次のようになります。 - name: site nginx config template: src="nginx-site.conf.j2" dest=/etc/nginx/conf.d/{{item.name}}.conf owner=root group=root mode=0444 with_items: sites notify: restart nginx - name: nginx conf template: src=nginx.conf.j2 dest=/etc/nginx/nginx.conf owner=root group=root mode=0444 notify: restart nginx validateAnsibleのテンプレートモジュールのパラメーターを使用して呼び出しnginx -t、新しい構成が構文的に有効であることを確認したいと思います。メインのnginx.confで機能します。 template: src=nginx.conf.j2 dest=/etc/nginx/nginx.conf owner=root group=root mode=0444 validate="/usr/sbin/nginx -c %s -t" しかし、サイト固有の設定ファイルへの変更を反映していないようです。置くvalidate彼らはでラップされる必要があるとして、サイト固有のテンプレートには、ない仕事をしてhttp有効であると指示。 これらのサイト固有のファイルの有効性を確認するにはどうすればよいですか?
11 nginx  ansible 

1
Ansibleを使用したユーザー管理の現状はどのようなものですか?
私は、Ansibleを使用して、大成功を収め、3年ほど前から、増え続けるLinuxシステムの群れを管理しています。質問に入る前に、いくつかの背景を説明する必要があります。 私は1日の仕事の一環として、1つのベンチャー/インキュベーター企業の傘下ですべてを運営するさまざまな企業のシステム設計、展開、および保守を担当しています。私たちのポートフォリオ企業の間には多くの異種交配があり、したがって、ユーザーA、B、CだけがX社のシステムにアクセスする必要があるとは言えません。Y社のシステムへのアクセスも必要になる場合があります。これは、各企業のansible環境が異なるgitリポジトリに存在するという事実によって複雑になります。これは、ユーザーを別の会社のシステムに展開するためのコードの重複が多いことを意味します。ユーザーを特定の会社のシステムにデプロイするために、次のようなコードのブロックをコピーして貼り付けます。 - name: add several users user: > name={{ item.name }} state=present groups={{ item.groups }} uid={{ item.uid }} password={{ item.password }} shell=/bin/bash with_items: - { name: 'user1', groups: 'ssh-access,sudo', uid: '501', password: '<redacted>' } - { name: 'user2', groups: 'ssh-access,sudo', uid: '502', password: '<redacted>' } tags: users - name: …
10 linux  ansible 

1
環境ごとにSSH認証情報を構成する
Ansibleを使用して、本番環境とステージング環境でSSH認証情報を個別に構成する方法を理解しようとしています。コマンドに-ior --inventory-file引数を渡すことで、さまざまなインベントリファイルを使用してサーバーのIPアドレスとホスト名を個別に設定できることを理解していますansible-playbook。ただし、そのようなオプションはありませんansible.cfg。現在、認証情報は次の場所にあります/etc/ansible/ansible.cfg: [defaults] private_key_file=/home/caleb/.ssh/staging_key.pem remote_user=ubuntu sudo_user=root gathering=explicit 本番用とステージング用に1つずつ、複数のSSH認証情報を設定するにはどうすればよいですか?
10 ansible 

1
複雑なスイッチを使用してmake&configureを実行しようとすると、Ansibleプレイブックが機能しない
これは、この質問の続きです。Ansibleを使用してVagrant VMをプロビジョニングしようとしています。VMはCentOS 6.4を実行しています。次の(省略された)ansibleプレイブックを使用しています。 - hosts: default vars: home: '/home/vagrant' curl_version: '7_19_7' curl_url: 'https://github.com/bagder/curl/archive/curl-{{ curl_version }}.tar.gz' curl_dir: '{{ home }}/curl-curl-{{ curl_version }}' # user: vagrant remote_user: vagrant sudo: yes tasks: - name: Ensure required packages and installed and up to date - pt1 yum: pkg={{ item }} state=present with_items: - make …
10 vagrant  ansible 

2
Mac OSX Mavericksにpython pipまたはhomebrewでAnsibleをインストールする必要がありますか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 最近、Linuxボックスの管理にOSXを使用するようになりました。そのため、OSXでLinuxプログラムを使用するのは初めてです。 AnsibleでVagrantを使用して開発環境をブートストラップしたいので、最初にインストールする必要があります。 ただし、OSXにAnsibleをインストールする2つの方法を発見しました。 ピップ:http : //devopsu.com/guides/ansible-mac-osx.html Homebrew:https : //github.com/Homebrew/homebrew/blob/master/Library/Formula/ansible.rb 最初にそのガイドに出会ったので、私はすでにpipメソッドでAnsibleをインストールしています。 両方の方法の長所と短所は何ですか?Ansibleは、pipまたはhomebrewを使用してインストールする必要がありますか? 私は簡単なインストールが自作を妨害することを発見しました: Warning: /usr/bin occurs before /usr/local/bin This means that system-provided programs will be used instead of those provided by Homebrew. The following tools exist at both paths: easy_install easy_install-2.7

3
パスワードなしのsudoを持つansibleユーザーがいるのは安全ですか?
Ansibleは初めてです。これまでに見たほとんどのVPSプロビジョニングガイドは次のとおりです。 rootがログインできないようにする ssh(パスワードではなく)でのみログインできる新しいユーザーを作成する パスワードなしのsudo権限wheelを使用して、新しいユーザーをグループに追加します (1)と(2)は理解できますが、(3)は理解できません。 確かにパスワードなしsudoはちょうどとしてログインするのと同じrootですか?メリット(便利さ)はわかりましたが、これは非常に安全ではありませんか? 管理者はさまざまな方法でネットワークを運用しているので、これは「主観的」であると言えるかもしれませんが、これは非常に一般的な慣例であり、さまざまな公式のansible docsやホスティング会社が発行するガイドにも示されています。それは常識に反します。その背後にある論理は何ですか?
10 linux  security  vps  ansible  sudo 

2
最新のansibleエラーログはどこにありますか
私はansibleスクリプトを使用してサーバー構成を起動しました。サーバー内からスクリプトを実行し、localhostインベントリですべてを実行していました。 これで、サーバーへのssh接続が閉じられ、ログファイルが見つかりません。これの標準ログパスはどこにありますか?/ var / logの下にansibleファイルはありません。 スクリプトを再度実行していて、エラーが再び発生することを期待していますが、スクリプトがエラーポイントまで実行するのに数時間かかるため、これは優れた解決策ではありません。
10 ansible 

4
非ルートユーザーを作成し、AnsibleでルートSSHを無効にする
サーバーをブートストラップするためのAnsibleプレイブックを作成しようとしています。Linodeのデフォルトでは、パスワードを使用してrootとしてのみログインできるため、プレイブックはrootとしてログインし、SSHキーを使用して非rootユーザーを作成し、rootとパスワードSSHを無効にします。 rootログインが無効になっているため、このプレイブックを再度実行できないため、これは問題です!プレイブックをべき等にして、ホストをブートストラップした後にホストを追加および削除する必要がないようにしたいと思います。
9 ansible 

3
「単一サーバー複数管理者」の構成管理
小さな協会のインフラストラクチャを実行するサーバーをセットアップしました。これまでのところ、Ansibleを使用して構成を管理しようとしましたが、それは大きな成功ではありませんでした。おそらく私たちはそれを間違っています。 原則として、このサーバーはほとんどの場合このサーバーはそのままにして、ブルームーンで一度追加または変更を行うという考え方です。システムを管理していない人は頻繁に概要を失うことになるため(詳細は覚えておいてください)、サーバー上で構成され実行されているものはすべて文書化され、明確であることが重要です。さらに、時間の経過とともに、このサーバーを管理する人々のグループの構成は変化します(人々が「委員会」を離れて参加するにつれて)。 クリーンインストールから始めて、何かを設定したいときはいつでも(nginx、phpfpm、postfix、firewall、sftp、muninなどの)ansibleにロールを追加しました。おそらく、私たちの経験の不足が原因で、設定が試行錯誤のプロセスであるため、一連のansibleタスクを必要な方法で正確に入力することはできません。つまり、実際には、通常、まずサーバーで実行する必要のあるサービスを構成し、次に、不可能なタスクに変換します。これがどこに向かっているかがわかります。人々はそれからタスクをテストすることを忘れるか、または物事を壊すリスクでそうすることを恐れるか、またはさらに悪いことです:私たちは物事をansibleに追加することを忘れるか、または無視します。 今日、ansible構成が実際にサーバーで構成されているものを反映しているという確信はほとんどありません。 現在、3つの主な問題が見られます。 物事を壊す危険を冒さずにansibleタスクをテストする(読む:良い方法がない)のは難しい。 それは最初に望ましい構成を理解するために余分な作業を追加し、次にこれをansibleタスクに変換する方法を理解します。 (理想的には)親しみやすさと日常を築くほど頻繁には使用しません。 ここでの重要な考慮事項は、私たちが最終的に何をしても、多くの練習をしなくても初心者が簡単にロープを学ぶことができるということです。 master「物事を構成し、あなたがしたことを書き留める」が提供できないいくつかの保証とチェック(Ansibleファイルをいくつかにマージするのと同等)を提供する実行可能な代替策はありますか? 編集:/etcgitへのコミットを検討しました。その方法でシークレット(秘密鍵など)を保護するための合理的な方法はありますが、それでもサーバーの外で構成リポジトリを使用できるようにしていますか?

2
AWSでDocker / AnsibleとAnsible、Puppet、Foremanを使用した不変サーバーモデル?
私たちは興味深い議論にぶつかり、2つの陣営に陥っています。見落としている可能性のあるアイデアや落とし穴に関する特定の問題に興味があります。本当に、私たちが決定を下したり、私たちが説明していないことを指摘したりするのを助けることができるものは何でも。私はこれが「意見なし」のルールを少し厳密に回避していることを知っていますが、それでもまだ受け入れ可能な質問であることを願っています。長さについても申し訳ありませんが、かなりのニュアンスがあります。 1)一方(私-偏見がないわけではない)は、不変サーバーモデルがクラウドシステムにとって非常に興味深いものであると考えています。そのために、インフラストラクチャのすべてのコンポーネントをDockerに移動するプロトタイプを作成しました。私たちのカスタムアプリケーションは、ローカルDockerレジストリにデプロイするDockerイメージに、Jenkinsを介して直接構築されます。次に、Ansibleロールの大規模なセットと、空のサーバーに到達できるプレイブックを作成し、Dockerをインストールして、必要に応じてすべてのコンテナーをインストールするようにDockerに指示しました。数分後、アプリ全体とそれをサポートするすべてのインフラストラクチャが接続され、機能します-ロギング、モニタリング、データベースの作成/入力など。完成したマシンは、完全にコピーされた自己完結型のQAまたは開発環境です応用。これをスケールアウトするための計画は、新しいPlaybookを作成して、ベースの信頼できるAMI(おそらく非常に最小限のイメージ)から新しいAWSサーバーを構築し、本番アプリケーションのローリングデプロイを実行して構成管理とリリースを処理し、通常はサーバーを再び編集しないことです。それらを新しくするだけです。私が説明したものを実際に機能させることについては心配していません-それが妥当なモデルである場合でも。 2)他のキャンプは、Puppetを使用して構成管理を処理したい、Ansibleはビルドプロセスから生成されたtarballであるカスタムアプリケーションをデプロイし、Foremanはプロセス全体のトリガーと管理を処理し、Kateloはある程度のベースを実行したい画像管理。リリースには、必要に応じてPuppetが構成を変更し、Ansibleが更新されたコンポーネントをある程度のForemanの調整でデプロイすることが含まれます。新しいサーバーが必要になった場合、サーバーはかなり迅速に構築されますが、その意図は、標準プロセスの一部としてサーバーを使い捨てにすることではありません。これはフェニックスサーバーモデルに近いですが、長寿命です。 だから私の質問は本当にこれに帰着します:私が上でそれらを説明したように、ツールを備えた不変のサーバーモデルは実際にそれが現れるのと同じくらい現実的ですか?私のステージングプロセスは、文字どおりアプリケーションのクローン全体をライブで構築することができ、QAでそれをハンマーに任せて、データベースストレージとDNS設定を反転させてライブにすることができるというアイデアが大好きです。 または、不変サーバーモデルは実際には失敗しますか?AWSとクラウド環境の両方でかなりの経験を持っているので、それは本当に問題ではありません-合理的に洗練されたアプリを今後確実にデプロイする方法の問題です。非常に頻繁にリリースされるため、これは特に重要です。 実際にEC2サーバーを作成することを除いて、Ansibleは必要なほとんどのことを行っていますが、それは難しくありません。このモデルでパペット/フォアマン/カテロが実際に必要な理由を理解できません。Dockerは、私が知ることのできる実際のツールでは、カスタムデプロイスクリプトよりもはるかにクリーンでシンプルです。Ansibleは、その場で構成する必要がないか心配する必要がなくなり、新しい構成で再構築するだけの場合、Puppetよりもはるかに簡単に使用できます。私はKISSプリンシパルのファンです-特にマーフィーの法則が蔓延している自動化で。機械が少ないほど、IMOは向上します。 アプローチについての考え/コメントまたは提案は大歓迎です!

2
1つのansibleスクリプトで異なるプレイブックに異なるホストを指定する方法
私が理解しているように、各プレイブックは1つのホストエントリを取ります。他のプレイブックを含むコンテナプレイブックを作成する場合、各プレイブックインクルードのホストをパラメータ化できることを知りたいです。だから何か --- - include playbook_1.yml hosts: tag_postgres - include: playbook_2.yml hosts: tag_rabbitmq すべての異なるプレイブックを1つのスクリプトに入れて呼び出すことができますが、この方法では、1つのプレイブックから別のプレイブックにset_factを再利用できないため、多くのタスクの重複があります。 質問の別の結果として、私はec2をAmazonで起動できますか? hosts: localhost 起動されたec2の構成。基本的にはからインベントリを構成し-i ec2.py、ホストは次のように指定されます。 hosts: tag_<some_tag> 同じプレイブックまたは含まれている一連のプレイブック(異なる役割)で発生しますか?
9 ansible 

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