Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Happy Windows Automation with Ansible

3,874 views

Published on

Ansible Night in Osaka 2019.05 で発表した資料です。

Published in: Technology
  • Hey I pick up great truck. Saved a lot, thanks. ❤❤❤ https://w.url.cn/s/Aaxmqpl
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Happy Windows Automation with Ansible

  1. 1. Ansible Night in Osaka 2019.05 Suguru Goto (@aabbss757)
  2. 2. テンプレ 本資料の内容は個人の見解であり、 所属組織の見解ではありません!
  3. 3. テンプレ 資料は後ほど公開します
  4. 4. 自己紹介 一般男性 ユーザー系 (愛知) 関係あれこれ、自動化 と旅をする(主に登山)
  5. 5. 【余談】#旅するAnsible
  6. 6. 【余談】#旅するAnsible
  7. 7. 【余談】#旅するAnsible 槍ヶ岳 🤔
  8. 8. 前置きが長くてすいません 。。。 🙇 本題へ 🙇 ※ オチはありません
  9. 9. 話すこと   と の歴史   のちょっと大変なとこ   で実現可能な 自動化  大変だったこと、ハマったこと、よかったこと   アップデート( 関連)
  10. 10. 話さないこと   から を操作するための準備作業のこと   から実験的にサポートされた、    ホストへの 接続のこと
  11. 11. (心の声) ( ) 。 ( 事例、あんまり多くないなぁ ) ( ) 。 (少しずつでも増えるといいなぁ ) ( ) 。 ( で 、結構出来るのです ) ( ) 。 (出来ることを持ち帰って欲しい !)
  12. 12. これだけは最初に言っておきたい Ansible? Windowsには不向き でしょう? (たまに聞く) (なぜか、Windowsは新しい  ものと相性が悪い・・・と  思う人がいる。いるの。)
  13. 13. これだけは最初に言っておきたい んなこたぁない (自分の周りだけ・・・?)
  14. 14. 話すこと   と の歴史   のちょっと大変なとこ   で実現可能な 自動化  大変だったこと、ハマったこと、よかったこと   アップデート( 関連)
  15. 15. AnsibleとWindowsの歴史 の 対応は から 2014.08 2016.01 2019.05 Ansible 2.0 29 modules Ansible 2.8 88 modules Ansible 1.7 8 modules 表記はWindows系モジュールの数 (win_xxx の数をカウントしました)
  16. 16. AnsibleとWindowsの歴史 むかし( 触り始めたころ、 くらい) ( ) 。 (ホスト名変更という単純なものでも、       モジュールが無かったりするのか〜)
  17. 17. AnsibleとWindowsの歴史 さいきん ( ) 。 (最近はネットワーク系モジュールの勢いが        凄いけど 系も増えています! ゆっくり、着実に・・・)
  18. 18. 話すこと   と の歴史   のちょっと大変なとこ   で実現可能な 自動化  大変だったこと、ハマったこと、よかったこと  推しモジュール   アップデート( 関連)
  19. 19. Windowsのちょっと大変なとこ あなたの目の前には、数百台の 軍団が オペレーションはあなた 人だけです 絶対に誰も助けに来ません そんな状況を想像しながら聞いて下さい
  20. 20. Windowsのちょっと大変なとこ ◆ リモートデスクトップ接続 接続と比較すると、お手軽さは接続と比較すると、お手軽さは 回線品質が悪いと操作しづらい(よく止まる) 「🌀ようこそ(みたいな画面)」 操作可能になるまで時間が掛かる😇 ( ) 。 (少し作業したいだけなのに、時間掛るな〜)
  21. 21. Windowsのちょっと大変なとこ ◆ 企業のセキュリティポリシーや運用設計にもよるが、 基本的には毎月適用する😇 の適用には、そこそこ時間が掛かる 😇 系の製品( とか)がインストール されたサーバーのパッチ適用はさらに時間が掛かる😇
  22. 22. Windowsのちょっと大変なとこ ◆ 設定変更するための手段が多い コマンド コマンドレット レジストリ グループポリシー → 人それぞれ手順が違うと 後から追いにくい! → 手順(設計)を標準化しよう → 標準化したら、 で自動化しよう👍 うわぁぁぁ <('A`<) ヘ( ヘ)
  23. 23. Windowsのちょっと大変なとこ ◆ 手順書( スクショ職人)
  24. 24. Windowsのちょっと大変なとこ ◆ 手順書( スクショ職人)
  25. 25. 話すこと   と の歴史   のちょっと大変なとこ   で実現可能な 自動化  大変だったこと、ハマったこと、よかったこと   アップデート( 関連)
  26. 26. Ansibleで実現可能なWindows自動化 で ・ の構築自動化 ・ の保守、運用作業の自動化 を試しました その前に…
  27. 27. Ansibleで実現可能なWindows自動化 思いつくがまま、ほどほどにリストアップしました (標準モジュール限定)
  28. 28. Ansibleで実現可能なWindows自動化 設定項目 モジュール ホスト名変更 win_hostname ドメイン参加 win_domain_membership レジストリ設定 win_regedit サービス設定変更、停止・開始 win_service 機能の有効・無効化 win_feature ファイアウォール(プロファイル有効・無効化) win_firewall ファイアウォール(ルール追加) win_firewall_rule
  29. 29. Ansibleで実現可能なWindows自動化 やりたいこと モジュール ファイル、フォルダ作成 win_file ファイル、フォルダコピー win_copy ファイル編集 win_lineinfile パッケージ管理 win_chocolatey 環境変数管理 win_environment ネットワークドライブ割当て win_mapped_drive タイムゾーン設定 win_timezone
  30. 30. Ansibleで実現可能なWindows自動化 設定項目 モジュール Windows Update適用 win_updates hostsファイル編集 win_hosts ユーザー作成、パスワード変更 win_user ユーザープロファイル作成・削除 win_user_profile プロキシ設定(システム全体) win_http_proxy プロキシ設定(Internet Explorer) win_inet_proxy IIS関係の設定 win_iis_xxx
  31. 31. Ansibleで実現可能なWindows自動化 紹介したのは「ほんの一部」です! もっと色々知りたい方は公式ドキュメントへ ! モジュールの組み合わせで、もっと出来る事があるかも?
  32. 32. Ansibleで実現可能なWindows自動化 ◆ 標準モジュールで実装できないものは 例えば でスクリプトを実装し、 モジュールで実行させる 冪等性の実装を忘れずに!😇 スクリプトの管理タスクが発生する😣 モジュールが提供されるまで待って、置き換える😞 もしくは自分でモジュールを開発する💪
  33. 33. 大変だったこと、ハマったこと、よかったこと   と の歴史   のちょっと大変なとこ   で実現可能な 自動化  大変だったこと、ハマったこと、よかったこと   アップデート( 関連)
  34. 34. 大変だったこと 大変だったこと、ハマったこと、よかったこと
  35. 35. ◆ 大変だったこと( モジュール) 冪等性担保のために ( )の指定が必要 インストール済みかを判定するために利用される ファイル( )の場合は指定不要 指定する場合は? インストーラーが ファイル以外 ファイルでも、 指定でダウンロードする 🤔? 大変だったこと、ハマったこと、よかったこと
  36. 36. ◆ 大変だったこと( モジュール) 引用元: 大変だったこと、ハマったこと、よかったこと GUID
  37. 37. ◆ 大変だったこと( モジュール) を把握するには?(他にもあるかも?) レジストリから 一度インストールして把握しないと・・・😇 ファイルから ファイルの情報を取得するスクリプトを作る 🤔🤔?? 大変だったこと、ハマったこと、よかったこと
  38. 38. ◆ 大変だったこと( モジュール) パッケージによっては ではなく パッケージ名 🤔🤔🤔??? の例を挙げ出すとキリがないので・・・ 公式ドキュメントの を参照してください🙇 大変だったこと、ハマったこと、よかったこと
  39. 39. ◆ 大変だったこと( モジュール) 大変だったこと、ハマったこと、よかったこと GUID
  40. 40. ◆ 大変だったこと( モジュール) 大変だったこと、ハマったこと、よかったこと パッケージ名
  41. 41. ◆ 大変だったこと( モジュール) 変数に定義して、まとめたものの・・・😇 増えたらカオスになる予感!!! 可能なら! モジュールを使いたいところ 大変だったこと、ハマったこと、よかったこと
  42. 42. ◆ 大変だったこと( モジュール) 変数に定義して、まとめたものの・・・😇 増えたらカオスになる予感!!! 可能なら! モジュールを使いたいところ 大変だったこと、ハマったこと、よかったこと これで頑張ってる 可能じゃなかった
  43. 43. 【参考】win_chocolateyモジュール ◆ (パッケージ管理) は と比べてパッケージ管理機能が貧弱😞 インストールのみではなく、アップデートも出来る! 注意 インターネット接続が必要 プロキシ環境下の場合 「プロキシ突破できない問題」にご注意😇 できなかった
  44. 44. ◆ (パッケージ管理) で提供されているパッケージはこちらで確認 ※「チョコラティ」「チョコレーティ」って読みます 【参考】win_chocolateyモジュール
  45. 45. ハマったこと 大変だったこと、ハマったこと、よかったこと ※主にバグ
  46. 46. ◆ ハマったこと( モジュールのバグ) で確認したバグ( で解消) レジストリに新規でエントリ(値)を登録する際、 エントリ名に中括弧 が含まれていると が になってしまう・・・ しかし、登録したいエントリは登録されている😇 エスケープ文字など試行錯誤したが 大変だったこと、ハマったこと、よかったこと
  47. 47. ◆ ハマったこと( モジュールのバグ) 大変だったこと、ハマったこと、よかったこと 登録したかった
  48. 48. ◆ ハマったこと( モジュールのバグ) 投げた! から 日後 に された!はやい! (゚Д゚ 解決されるまでは で凌いだ 大変だったこと、ハマったこと、よかったこと
  49. 49. ◆ ハマったこと( モジュールのバグ(暴走)) から にバージョンアップした → パッチが配信された、検証環境で動作確認しよ! 大変だったこと、ハマったこと、よかったこと
  50. 50. ◆ ハマったこと( モジュールのバグ(暴走)) 実行結果 大変だったこと、ハマったこと、よかったこと あれ?
  51. 51. ◆ ハマったこと( モジュールのバグ(暴走)) 大変だったこと、ハマったこと、よかったこと あ ありのまま 今 起こった事を話すぜ! 「 モジュールの パラメータ  に を指定して実行したら、   が適用されていた」 な  何を言ってるのか わからねーと思うが おれも何をされたかわからなかった
  52. 52. ◆ ハマったこと( モジュールのバグ(暴走)) パラメータを にした場合、適用対象の パッチを検索する・・・というのが正しい動き しかし、検索ではなく 適用 までされてしまった😇 本番環境じゃなくてよかった・・・😇 ※ このバグは で解消されました 大変だったこと、ハマったこと、よかったこと
  53. 53. よかったこと 大変だったこと、ハマったこと、よかったこと
  54. 54. ◆ よかったこと( 適用作業) 導入前 リモデ→パッチ適用→再起動→リモデ→適用結果確認 再起動後に再度リモート接続、地味に面倒😇 導入後 モジュールの実行結果を で取得し適 用結果を モジュールで表示 ・・・めっちゃ楽!☺ 大変だったこと、ハマったこと、よかったこと
  55. 55. ◆ よかったこと( 適用作業) 大変だったこと、ハマったこと、よかったこと 再起動要求時に自動再起動 実行結果を表示
  56. 56. ◆ よかったこと( 適用作業) 導入以前でも 多少の 並列作業は可能だった 導入後はより一層、並列作業が捗るように!💪 グループ化すれば、片系ずつの実行も容易! 実行後は放置、終わってたら結果確認 ( )の通知機能を使えば、さらに捗る予感! が終了したら に通知・・・など 大変だったこと、ハマったこと、よかったこと
  57. 57. ◆ よかったこと( 適用作業) パッチ適用中に画面を確認する時間が圧倒的に減った 画面を見る時間は 分 程度に 作業を に任せて、他の業務ができる💪 単純作業の効率化、工数削減 誰もがやりたくない 単純作業 を少しでも早く 単純作業より、クリエイティブな仕事したいよね! 毎月のパッチ適用作業、非常に頭が痛かった😇 大変だったこと、ハマったこと、よかったこと
  58. 58. ◆ よかったこと(サーバー初期構築の自動化) 〜 時間 → 分くらい ※作業項目の数、作業者の作業スピードにもよります💁 大変だったこと、ハマったこと、よかったこと
  59. 59. ◆ よかったこと(サーバー初期構築の自動化) 初期構築作業のツラミ パッチ適用作業とは違い、常に張り付いてポチポチ 台の構築に掛かる時間 構築台数 = 😇 手順書が辛かった(本音) スクショ職人(エビデンス)もあるよ!😇 こういう仕事(作業)の繰り返しは辛い😇 大変だったこと、ハマったこと、よかったこと
  60. 60. ◆ よかったこと(サーバー初期構築の自動化) 初期構築作業のツラミ パッチ適用作業とは違い、常に張り付いてポチポチ 台の構築に掛かる時間 構築台数 = 😇 手順書が辛かった(本音) スクショ職人(エビデンス)もあるよ!😇 こういう仕事(作業)の繰り返しは辛い😇 大変だったこと、ハマったこと、よかったこと
  61. 61. ◆ よかったこと(サーバー初期構築の自動化) これだけでいいじゃないか 大変だったこと、ハマったこと、よかったこと 爽快
  62. 62. 話すこと   と の歴史   のちょっと大変なとこ   で実現可能な 自動化  大変だったこと、ハマったこと、よかったこと   アップデート( 系モジュール)
  63. 63. Ansible 2.8 アップデート(Windows系モジュール) ◆ 追加されたモジュール( モジュール!結構増えた👍) win_chocolatey_facts win_optional_feature win_credential win_partition win_dns_record win_psrepository win_domain_group_membership win_rds_cap win_format win_rds_rap win_hosts win_rds_setting win_http_proxy win_snmp win_inet_proxy win_user_profile
  64. 64. Ansible 2.8 アップデート(Windows系モジュール) ◆ 追加されたモジュール( モジュール!) 追加されたモジュールの一覧は に載っています
  65. 65. 新しいモジュールを使ってみた Ansible 2.8 アップデート(Windows系モジュール)
  66. 66. ◆ 追加されたモジュール win_chocolatey_facts win_optional_feature win_credential win_partition win_dns_record win_psrepository win_domain_group_membership win_rds_cap win_format win_rds_rap win_hosts win_rds_setting win_http_proxy win_snmp win_inet_proxy win_user_profile Ansible 2.8 アップデート(Windows系モジュール)
  67. 67. ◆ 使ってみた 今まで、 ファイルの編集は・・・ モジュールで頑張っていた 「 アドレス」「ホスト名」を指定するだけに!😋 Ansible 2.8 アップデート(Windows系モジュール)
  68. 68. ◆ 使ってみた リストでも🙆‍♂ Ansible 2.8 アップデート(Windows系モジュール)
  69. 69. ◆ 使ってみた できた!🙆‍♂ Ansible 2.8 アップデート(Windows系モジュール)
  70. 70. ◆ 追加されたモジュール win_chocolatey_facts win_optional_feature win_credential win_partition win_dns_record win_psrepository win_domain_group_membership win_rds_cap win_format win_rds_rap win_hosts win_rds_setting win_http_proxy win_snmp win_inet_proxy win_user_profile Ansible 2.8 アップデート(Windows系モジュール)
  71. 71. ◆ 使ってみた ディスク追加作業、 コマンドで頑張っていた 初期化 新規パーティション作成 フォーマット からスクリプトやコマンドを実行するのは 極力控えたい、標準モジュールで実装したい・・・ そんなことを思っていた半年後に実装された、神か 冪等性 😢 Ansible 2.8 アップデート(Windows系モジュール)
  72. 72. ◆ 使ってみた モジュールのドキュメントを読む・・・ →ディスクの初期化は出来ないらしい😭 引用元: Ansible 2.8 アップデート(Windows系モジュール)
  73. 73. 😢 2, 3番目のtaskはコ マンドだった Ansible 2.8 アップデート(Windows系モジュール)
  74. 74. 使えるよう にしたい Ansible 2.8 アップデート(Windows系モジュール)
  75. 75. Ansible 2.8 アップデート(Windows系モジュール)
  76. 76. 出来た! 😄 Ansible 2.8 アップデート(Windows系モジュール)
  77. 77. 本編終わり おまけ
  78. 78. おまけ コマンド操作は嫌 だよ〜 GUI欲しいよ〜 (運用現場あるある) (気持ちはわかる) (心理的安全性の確保) (GUI慣れしてると特に)
  79. 79. おまけ を 環境で利用できます! 使ってみませんか? ( 、 のアップストリーム版) ご参考 を導入してみた( ) https://www.slideshare.net/sugoto/ansible-awx
  80. 80. ご清聴、ありがとうございました!

×