Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ansible徹底入門で学んだこと.pdf

Cc1353e2904a2cf2afc297953ed32e84?s=47 Takaoka Shuichi
April 27, 2017
540

 Ansible徹底入門で学んだこと.pdf

Cc1353e2904a2cf2afc297953ed32e84?s=128

Takaoka Shuichi

April 27, 2017
Tweet

Transcript

  1. Ansible徹底入門で学んだこと 2017/04/27 Ansible徹底⼊⾨輪読もくもく会 #1 Shuichi Takaoka

  2. 自己紹介 • 高岡 修一(たかおか しゅういち) • ホスティングのインフラエンジニア&マネジメント少々 • Python/Pythonで作られたものが好きです •

    Ansibleは初心者レベル Twitter: @tshst__ GitHub: @tshst 2017/04/27 Ansible徹底⼊⾨輪読もくもく会 #1 2
  3. アジェンダの前に • Ansbile輪読会#0でじゃんけんに買って、本頂きました! 2017/04/27 Ansible徹底⼊⾨輪読もくもく会 #1 3

  4. 2017/04/27 Ansible徹底⼊⾨輪読もくもく会 #1 4

  5. で、ちゃんと学習しました • Chapter1 - Chapter4までですがw • アウトプット • やったことのメモ •

    GitHubのコミット • Blog 2017/04/27 Ansible徹底⼊⾨輪読もくもく会 #1 5
  6. アジェンダ • Dynamic Inventory スクリプト • Dynamic Inventoryの使い所 • Inventoryの管理/運用

    2017/04/27 Ansible徹底⼊⾨輪読もくもく会 #1 6
  7. Dynamic Inventory スクリプト • 動的にホスト情報を取得 2017/04/27 Ansible徹底⼊⾨輪読もくもく会 #1 7 Ansible

    dynamic-inventory script (Apache Libcloud) Returns JSON-data to the python script
  8. Dynamic Inventory スクリプト • 公式GitHubで各種スクリプトを配布している • 各種IaaS(Azure, AWS EC2, GCE,

    OpenStack) • 監視システム(Nagios, Zabbix) • オーケストレーションツール(Serf, Consul) 2017/04/27 Ansible徹底⼊⾨輪読もくもく会 #1 8
  9. Dynamic Inventory スクリプト • 実行可能なpythonプログラム • 実行結果は、JSON形式で標準出力に出力される 2017/04/27 Ansible徹底⼊⾨輪読もくもく会 #1

    9 $ ./vagrant.py –list {"_meta": {"hostvars": {"default": {"ansible_ssh_host": "127.0.0.1", "ansible_ssh_port": "2222", "ansible_ssh_user": "vagrant", "ansible_ssh_private_key_file": ”~/virtualbox/private_key"} } }, "vagrant": ["default"] }
  10. Dynamic Inventory スクリプト • InventoryファイルかDynamic Inventoryファイルかの判定は ファイルの実行権限の有無で行っている • 実行権限がないファイルは静的Inventoryとして扱う •

    実行権限が付いていればDynamicInventoryスクリプトとみなす • 実行方法 • ansible-playbook -i vagrant.py site.yml 2017/04/27 Ansible徹底⼊⾨輪読もくもく会 #1 10
  11. Dynamic Inventoryの使い所 • Inventoryファイルの更新頻度が高い • サーバの負荷状況に応じてインスタンス台数が変動するとか • 他なにかありますかね? 2017/04/27 Ansible徹底⼊⾨輪読もくもく会

    #1 11
  12. Dynamic Inventory まとめ • 思った以上に便利ではなかった • もっと便利に使える気がする • もくもくしていきます 2017/04/27

    Ansible徹底⼊⾨輪読もくもく会 #1 12
  13. Inventoryの管理/運用 • 前職でやっていたこと • Inventoryファイルはgitで管理 • メンバーが各自でローカルマシンにgit pullしてAnsible実行 • Inventoryファイルが提供サービス単位で複数存在する

    • Inventoryのファイルの中身は認証ユーザでグループ化 2017/04/27 Ansible徹底⼊⾨輪読もくもく会 #1 13
  14. Inventoryの管理/運用 • 「Ansible徹底入門」で学んで改善したいと思ったこと • Inventoryは、監視サーバのホスト情報をベースにしたい • グループの管理を見直したい • Ansible専用のサーバから実行したい 2017/04/27

    Ansible徹底⼊⾨輪読もくもく会 #1 14
  15. Inventoryの管理/運用 • Inventoryは、監視サーバの情報をベースにしたい • 情報の一元管理 • オンプレのホスト情報は、cobblerにある • パブリッククラウドのホスト情報はcobblerにはない •

    情報の正確性の保証 • 複数人で1つのファイルを管理していると、正しい情報がわからなくなるときが ある • 正しい情報を保証してくれるのは、サービスを監視している監視サーバなので は? 2017/04/27 Ansible徹底⼊⾨輪読もくもく会 #1 15
  16. Inventoryの管理/運用 • グループの管理を見直したい • groupの名称をサービスの役割の名称に変更する • group_varsを有効活用したい • 設定ファイルをtemplate化して、proxyサーバと非proxyサーバで設定変える等 •

    同じRoleでも時代によって認証情報が異なる問題はif文とかで解決できそう • 複数のgroupに属するように変更する • 提供サービス毎にInventoryファイルが別れていたものを一元化 2017/04/27 Ansible徹底⼊⾨輪読もくもく会 #1 16
  17. Inventoryの管理/運用 • Ansible専用のサーバから実行したい • 特定のサーバからデプロイするメリットがありそう • 通知を受け取ってデプロイ処理を実行できそう • cronとかで、定期実行する処理があれば便利そう •

    デメリットないの? • シングルポイントになるので、死んだら終わり • でも、今の時代、いろんな方法あるので、そこまでのデメリットにならなそう 2017/04/27 Ansible徹底⼊⾨輪読もくもく会 #1 17
  18. Inventoryの管理/運用まとめ • オンプレとクラウドが混在して、ホストの管理が複雑になって いくなかで、Ansibleを運用していくには、Inventoryの中身を 理解して、効率よくかつシンプルにしていくことが重要だと感 じました。 2017/04/27 Ansible徹底⼊⾨輪読もくもく会 #1 18

  19. ご清聴ありがとうございました。 2017/04/27 Ansible徹底⼊⾨輪読もくもく会 #1 19