在第二届Ansible沉默会议中使用的Ethapad备忘录
Ansible工作坊(第二期)将在2018年3月27日举行。
从3月份开始,由红帽员工主办的Ansible沉浸学习会开始了。我们于3月27日举办了第二次活动。红帽为了使大家能够利用Ansible和Ansible Tower,提供了AWS资源,并提供了与内容相衬的自主学习的环境。这次活动中,我们使用了Ethapad进行问答环节,将其作为备忘录保存下来。
请参考以下Connpass网站上的活动详情:
https://ansible-users.connpass.com/event/79866/
Ethapad的内容
我将在这里用Ethapad保存我们在这里的问答内容。
-
- 喫煙所はありますか?
Ans.ビルの中にはないです。8時まではビルへ自由に出入りできますので、恵比寿駅前の喫煙所までお願いします。1Fから出て、駅にまっすぐ行った先のスタバの目の前くらいです。
8時以降はビルに鍵がかかり、入ることができなくなるので気をつけてください。
トイレはありますか?
ガラスの扉を出たところすぐに男子トイレが、まっすぐ行った右手に女子トイレがあります。
演習はどこから始めたらいいのでしょうか?
配られた紙の、
[control]
ansible ansible_host=XX.XX.XX.XX
?このホストへsshでログインをして始めてください。こんな感じ $ ssh studentNN@xx.xx.xx.xx
ログインID/Passは配られた紙の上から2行目3行目です。
ログインしたら、ansible –version などでansibleがインストールされているかを確認するといいと思います。
[Q]Ansible 初めてです。 node の設定ファイルはどこにあるのでしょうか?
確か、ログインしたホームディレクトリ直下にある .ansible.cfg にデフォルトで使用する Inventory ファイル(nodeとかの接続情報が書いてあるファイル)のパスがかかれてたと思います。
$ ansible –versionを実行すると、ansible.cfgの指定箇所がわかります。
~/.ansible.cfg でした。ところで絵文字ってどうやって打ってますか?→Macだと「えもじ」と打つと?❗になります??
“cat /home/studentXX/.ansible.cfg”
[student01@ip-172-31-11-35 ~]$ cat ~/.ansible.cfg
[defaults]
connection = smart
timeout = 60
inventory = ~student01/lightbulb/lessons/lab_inventory/student01-instances.txt
host_key_checking = False
上記のansible.cfg内で、デフォルトのインベントリファイルを予め指定してあります。なので、Ansible実行時にインベントリ指定の省略できます。”ansible -i <インベントリファイル>”の-iの部分は省略可能。
“cat ~studentXX/lightbulb/lessons/lab_inventory/studentXX-instances.txt”
この内容が紙で配られているはずですね
[蛇足] $ ansible all –list-hosts とかでもリストだけは出たりします。 -vとか-vvつけると詳細も。
もくもく会でご用意いただいたAWS環境と同じ環境を、帰宅後に自分の環境で構築して復習したいです。同じ環境を作るにはどのように構築したらいいでしょうか。
https://github.com/ansible/lightbulb/blob/master/tools/aws_lab_setup/README.md
こちらのドキュメントから構築方法が確認できます。t2microとt2mediumが利用されています。
複数インスタンスを起動する場合にはAWSのインスタンス起動数のLimitationを別途解除いただければできるはずです。
lightbulb/Vagrantfileを使えば、ローカルでも練習環境を構築できます。でも、色々追加設定が必要のため、初心者にはオススメできません。
Ansible初めての方はGuide(ハンズオン)から始めるのがオススメをもとに実施していますが、コマンドのオプション等を調べたい場合はどうしたらいいでしょうか?
https://docs.ansible.com/ansible/2.4/command_line_tools.html にコマンドの使い方が載っています。
もしくは、ansible-playbook –helpで詳細なヘルプは確認できます。
基本的な書式は、ansible-playbook -i <インベントリファイル名> です。
(k.nakayama.pg)Ansible Tower 演習のStep7のsetup script が10~15分時間が掛かる認識で合っていますか?
はい、setup.shを流したあと15分程度はかかるかと思います。
PostgresのインストールとDBスキーマの初期化がありますので。
pg_passwordには何を指定すればよいのでしょうか??
“password”等でも大丈夫です。
Towerのバージョンですが、Limitedではなく、今回の演習ではEnterpriseの方がよいですか?
はい。Enterprise版です。Workflowが使えます。
ありがとうございます!!!
Engine 2 playbook Section 3: Adding Tasks to Your Play で httpd.conf じゃなくて index.html コピーしてますか?してますね解決しました。
Exercise 2 の new credential の priveldge escalation は PRIVILEGE ESCALATION METHOD が正しいみたいです。
Ansible Tower の演習2のステップ4.インベントリ追加のところ、追加しようとすると「インベントリー」と「スマートインベントリー」が出るのですが、どちらを選択すればよいですか?
「インベントリー」を選択してください。
了解です!!ありがとうございます!!
Towerにおける「all」グループのvarsの定義はインベントリーにおけるvarsの定義と同一ですか?
Towerのインベントリですか
はい
質問の答えとしては、今回は同じVarsが指定されているはずです。tower-manageコマンドでImportしているので。
AnsibleTowerのGUIから”インベントリー/指定したインベントリ/グループ”と辿っていくと、先ほどCoreで見ていたInventoryと同じグループ構成のものが見えてきます。
さらに”Web/ホスト”と辿ると、Nodeが3つ見えてくるはずです。
node-1などをクリックすると、ImportされたVarsが”変数”と記載されたところに入っているのが確認できます。
http://docs.ansible.com/ansible-tower/latest/html/userguide/job_templates.html#extra-variables
☝️のドキュメントの、Ansible Tower Variable Precedence Hierarchy (last listed wins)がわかりやすいかもです。
TowerとCoreではインベントリーの扱いが異なるので、CoreのInventoryへ記載していたものはTowerではTower Inventoryへ置き換わります。
TowerでJobTemplateの作成時に、指定したいグループなどを指定することが可能です。
☝️今回の演習もそうなっていましたね。Job Templateで”制限”にて”web”を指定していました。
解答例の部分で {% raw %} {% endraw %} と表示されている部分がありますが、これは Playbook には記載しなくてOKです。
このファイルから Sphinx とかでドキュメント生成するときに使われるんだと思います。 :b
inventory.ini の指定もしなくてもOKですね
curry9999さん登場しましたのでここで回答してもらいたいと思います。真ん中のほうに座っているので口頭で質問してみても良いかも。
ToALL >> Playbook作成時のおすすめのエディターを教えてください(宗教戦争ではないです)
Sublimeがシンプルで好きです。
VisualStudio Code 最高!ExtentionでAnsible auto-completeを入れると更に便利です。
いいですね、ワンクリックですぐPlaybook実行できるのも素敵です!
Atomも便利。Pluginでlanguage-ansibleとautocomplete-ansibleがある
Emacs の yaml-mode + indent-guide が好きです。
viで戦っています。
VisualStudio Codeは良いですね・・・。
vimでオススメのpluginあったら教えてくださいー。chase/vim-ansible-yamlがメンテナー募集してて危なそう?
Exercise 1でサービスを立てたり止めたりしますが、systemctl status xxxのようにステータスを確認する方法はあるのでしょうか?
どのExerciseですか?Ansible Core?Tower?
失礼しました。ansible_engineのExercise1 1-adhoc step5, step6です。
Ansible moduleは冪等性を実現するための機能として実装されています。Status確認ような操作は、以下のようなコマンドで確認できます。
$ ansible web -m shell -a “systemctl status httpd”
有難うございました。
Towerの演習まで終了した人は、AnsibleTowerのワークフローテンプレートなどぜひ試して見てくださいね。
テンプレート/追加/ワークフローテンプレートで作成できます。複数のJobTemplateを順番に実行していくことができます。
AnsibleTowerのProjectやJobTemplate、などの単語を知るにはこの辺を読んでみるのもおすすめです。設定一式を解説しています。
https://{AnsibleTowerIP}}/api/v2 と打つと、API既存の Playbook を Tower に移行するときにどんな注意が必要ですか?
pause や interactive に入力を求めるものはそのままは移行できない → 入力がどうしても必要なら Survey を使う。そもそもなぜ入力が必要かを見直して方がいい。
Ansible と Tower のバージョンに組み合わせがあるので注意が必要
Playbook が巨大だと Tower の動作が重くなる
大きなものは Tower としては workflow でつなぐ
意味のある小さめの単位に分割する
小さい方がテストしやすかったり、流用も効くので私もおすすめです
Playbook内で分岐が多くなるようであれば、Module化してしまった方がいい
辛苦了!
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
最后
在LT枠中,除了事先候选人之外,还有来自其他人的提问、评论和讨论,非常活跃。
Ethatpad在以下网站上可能由开发者免费启动,非常易于使用。它非常简单。
https://oasis.sandstorm.io/
活動結束後,雖然時間有點晚,但我們舉行了一個名為Ansible飯的聚會。參加人數不多,大家坦誠相待地進行了各種交談。
我计划下次会在4月中旬进行,但目前还不确定。请参考备忘录中的内容,在您自己的环境中尝试实施。如果您有兴趣深入验证Ansible Tower,请联系ansible-jp@redhat.com与我们取得联系。
以下是本次参加作为博主的一篇文章链接: