#Ansibleもくもく会(第3回)
2018年5月30日に第3回目となるAnsibleもくもく会を実施いたしました。いろいろハプニングがあったのですが、参加された方からのご質問とRed Hat社員やもくもく会メンターからのご回答を備忘までに記事に残しておこうと思います。
#当日のEthapadでの質問&回答
-
Ansible Tower のインストールシナリオを実施する際、今のEC2のインスタンスにはHostnameが未定義のようなので、先に手で定義しても後のシナリオに影響ないでしょうか?
- 接続先が ansible_host で指定されていればホスト名は影響しないです。Tower のインストールは connection=local だから大丈夫
- ~/.ansible.cfg に inventory file が用意されています
- Ansible Towerのインストールの際には、localhostを指定することになると思いますので、未定義でも
- >いや何かSSH接続する際に間違ったホストに対して誤操作しそうで怖かったんです(プロンプトを変えたかっただけです)とりあえず変えずに続行します
-
ansibleでplaybookのバージョンや依存関係を管理することは出来るのでしょうか。(やりたいこと:chefのberksfileのようなイメージ)
- ansible galaxy で role を別管理にして共有するとかでしょうか
- ansible galaxyをつかえるといいなと考えているのですが、なかなかかゆいところに手が届くplaybookが見当たらないなと思っているので一部galaxyのplaybookも使いつつ自前で作成するpalybookも利用したいと考えています。ちなみにgalaxyのpalybookは業務でも利用されている方多いのでしょうか?
- 実際のところ、galaxy を使うのは不安なので参考にして自前で書くのが良いのではないかと。
- 使う場合は中身をちゃんと読み込んで使いましょう。
- もしくは参考にして自分で書くとか。
- なるほどです。ありがとうございます。playbookの依存関係は管理できたりするのでしょうか?
- ここでいう"依存関係"というのは、どういったイメージでしょうか?ユースケースがあるとありがたいです :)
- えっと、例えばphp7.1をインストールするplaybookのバージョンをgithub上で1.0として作ったとします。そのplaybookを別のplaybookから呼び出すような感じなのですが、わかりづらくてすみません、、、
- role 単位で共有するのが先の galaxy で、複数のプロジェクトで使う role を別管理にしておいて取り込むようなことは可能ですが、playbook 実行時に勝手に取ってきてくれたりはしないですね、ある role の meta 情報に別の role への依存指定を書くことは可能ですが その role を playbook 内に持っている必要はあります
- role の置き場所は複数箇所を指定することができます (roles_path を適切に設定する必要は
- 例えば、リリースバージョンごとにフォルダを分けて、実行時にroles_pathを指定して実行とかできたりしますか?
- role の置き場所は複数箇所を指定することができます (roles_path を適切に設定する必要は
- meta情報に書くのですね…ありがとうございます。meta情報に書くやり方はansible界隈な方ですとよくある感じでしょうかー?
- ansible-galaxy install geerlingguy.apache,v1.0.0 のようにタグを打てますね (\url{http://docs.ansible.com/ansible/latest/reference\_appendices/galaxy.html#version)} roleを置いているリポジトリ側でリビジョンを分けるアプローチもありかと思います。このユースケース面白いですね。すごく現実的な話だと思います
-
おぉーー!!なるほど!そういうやりかたもあるのですね!ありがとうございます!現在、ansibleでrole書いたのですが、chefを知ってる上司からこんな使い方できないの?と聞かれており、ダメならchefで書き直せと言われそうな危機なのです・・・バージョンの話をしてみようと思います
- ansibleだけでなく、他のツールとの組み合わせで解決する必要がありそうですね。ansible-galaxy コマンドに渡す *requirements.yml *にリビジョンを書くケースが多い気がします↓こんな感じで(\url{http://docs.ansible.com/ansible/latest/reference\_appendices/galaxy.html#installing-multiple-roles-from-a-file)}
-
- src: git+\url{http://bitbucket.org/willthames/git-ansible-galaxy}
- version: v1.4ありがとうございます!!
-
- ansibleだけでなく、他のツールとの組み合わせで解決する必要がありそうですね。ansible-galaxy コマンドに渡す *requirements.yml *にリビジョンを書くケースが多い気がします↓こんな感じで(\url{http://docs.ansible.com/ansible/latest/reference\_appendices/galaxy.html#installing-multiple-roles-from-a-file)}
-
これは、自前 galaxy サーバーもありかなという気になりますね、git でも良さそうですが(しかし、数十個の playbook でバージョン指定更新して回るとか辛い)
- 確かにそうですね、機能として出来れば文句言われないような気がしますww
- git の branch を指定しておいて ansible-galaxy update 的なことってできるんでしょうか?ドキュメントに update コマンドは見つからない
- ブランチのリビジョン番号をみて、更新されているようであれば、結果的にアップデートされるんじゃなかったかと思います(違っていたらごめんなさい)
-
- ansible-galaxy install geerlingguy.apache,v1.0.0 のようにタグを打てますね (\url{http://docs.ansible.com/ansible/latest/reference\_appendices/galaxy.html#version)} roleを置いているリポジトリ側でリビジョンを分けるアプローチもありかと思います。このユースケース面白いですね。すごく現実的な話だと思います
- role 単位で共有するのが先の galaxy で、複数のプロジェクトで使う role を別管理にしておいて取り込むようなことは可能ですが、playbook 実行時に勝手に取ってきてくれたりはしないですね、ある role の meta 情報に別の role への依存指定を書くことは可能ですが その role を playbook 内に持っている必要はあります
-
リンク先のStep6の入力事項は何を記入すればよろしいでしょうか。
- \url{https://github.com/ansible/lightbulb/tree/master/guides/ansible\_tower/1-install}
- admin_password, pg_password, rabbitmq_password に任意のパスワードを設定してください
-
\url{https://github.com/ansible/lightbulb/tree/master/guides/ansible\_tower/2-config} のCreating a Credential内のUSERNAME、PASSWORD、配布された紙のansible_user、ansible_ssh_passでよいでしょうか。
- USERNAME=配布した環境情報のansible_user, PASSWORD=red123hat
-
Webブラウザへを使ったTowerサーバーへのログイン時に使用するusernameとパスワードはどうすればよいでしょうか
- usernameは"admin"、passwordはインストール時のinventory内のadmin_passwordに指定したパスワードです!
-
ansible tower のライセンス要求は時間がかかるでしょうか。
- すぐ送られてくると思います(数分)
- メール受信しました。
- 無事届いてよかったです! :D
-
[control] ansible ansible_host=54.250.152.253 がansible tower設定中にダウンしたのでしょうか...
-
CoreOS にはどうやって Playbook を適用するんでしょうか?
- CoreOSにはPythonの環境がないので、実行時にrawで直接Pythonの環境をセットアップします(たとえば/home/core/bin/pythonに)
- \url{https://github.com/defunctzombie/ansible-coreos-bootstrap}
- ↑これですbootstrapでpythonインタプリタやpypyを無理やりインストールして管理下に置きますが、たぶんAnsibleよりもエレガントに管理するための別の方法をとるほうが筋が良いと思います。
-
Ansible Towerの評価版入手先
- \url{https://www.ansible.com/license}
- 上のフォームが実案件ある方用フォームで、後日フォローのメールがありライセンスファイルを提供いたします
- 下のフォームが10ノードまで機能制限付きです(この辺が使えない→LDAP and Active Directory support, system tracking, audit trails and surveys.)
- とりあえず触ってみたいかなという人は、ansible-jp@redhat.com もしくは ビジネス開発の中村宛(mnakamur@redhat.com)にご連絡
- もしくは、AWX \url{https://github.com/ansible/awx} をご利用ください
- \url{https://www.ansible.com/license}
ハプニング & 終わりに
以下のAnsibleブロガー記事にもあります通り、当日21時半までAnsibleの環境を使えるように手配しておりましたが、本社側の担当者がミスをしてしまいまして、予定よりも早い20時にインスタンスが落ちてしまうということになってしまいました。。ご参加された方々にはご期待に反したことになってしまい申し訳ございません。
RedHat 主催 Ansibleもくもく会 2018/05/30(水)
https://qiita.com/tkmry/items/9cc046459aa0a145a7ad
今後も1ヶ月に1回ペースで実施していこうと思いますので、フィードバック含めて今後ともよろしくお願いいたします。