Ansible初学者在开始的第一个月所做的事情
我开始使用Ansible的契机
我之前一直对配置管理工具感兴趣,但是当我知道它不仅仅支持服务器,还支持网络设备,并且从O’Reilly出版了《初学Ansible》这本书时,我开始学习Ansible。
我想为刚开始学习Ansible的人提供一些参考,所以我想总结一下我在开始的第一个月中的输入和输出。由于我想操作网络设备,可能会有些偏差。目标版本是2.1。
第一周
输入
-
- 書籍「初めてのAnsible」
概要を知るための最初の一冊、という感じでしょうか。
エージェントレスであることなどの特徴、Playbookの形式、ロール、Ansible Galaxyの存在など、広く浅く知れたと思います。
EC2やDockerの章は熟読しませんでした。また、当時はモジュールを作成しようとは思っていなかったのでカスタムモジュールの章もあまり読みませんでした。
输出
- 特にありません。
■ 第二个星期
输入
書籍「Ansible完全読本」
電子書籍しかありませんがAnsible 2に対応した日本語書籍です。Playbookの例が前述の「始めてAnsible」より簡単なので、試してみようかなという気になりました。
具体的には、Linuxにnginxをインストールしてサービスの起動、chkconfigをonにするという単純なPlaybookを初めてかきました。冪等性とはどういうものか少し実感できました。
公式ドキュメント
もともとCisco IOSの機器を操作したいと思っていたので、ios_configやios_commandのモジュールの説明のページを見るようになりました。ですが、正直細かい仕様がわからず、ネット上にまだ使用例も少なかったので「もしかしたらモジュールのコードを読まないといけないのでは」を感じ始めました。
公式動画
ネットワーク自動化に関する動画もあり、ios_configなどのモジュールの使用例、実行例を見られたという点で貴重でした。
输出
-
- Qiita「Ansibleで複数のCatalystのパスワードを一括変更する」
分からないなりに試してみました。
■ 第三周
输入
-
- 書籍「Extending Ansible」
「細かい仕様をするにはコードを読む、コードを読みやすくなるには、モジュール開発向けのドキュメントを読む」という発想でパラパラと読みました。
後になって、この本読む前にカスタムモジュールに関する公式ドキュメント(後述)を漁っておくべきだったかなと思いました。
输出
-
- Qiita「Ansibleのios_command等の各タスクの認証情報は「provider」1行でキメる」
タスクに与える認証情報をなるべくスマートにする方法を動画をきっかけに知ったので試しました。
Qiita「AnsibleのPlaybook実行時に牛とゆかいな仲間たちを表示させる」
「Ansible完全読本」に載っていたネタを試しました
Qiita「【Hello,module!】15分くらいでできるAnsibleモジュール作成体験(Bash編)」
「Extending Ansible」に載っていたBashで作成するとても簡単なカスタムモジュールを試しました
Qiita「AnsibleでCisco IOSの機器のホスト名を大文字に統一する」
jinja2のフィルタを初めて使いました
■ 第四週
输入
-
- 公式ドキュメント「Modules — Ansible Documentation」
-
- 公式ドキュメント「Developing Modules — Ansible Documentation」
-
- コード「ios_config.py」「ios.py」「netcfg.py」
的を絞って具体的にコードを読み始めました。機器から show run をとってくる様子、Playbookで指定されたコマンドと同比較して、最終的なコマンドをどう生成するかを追っています。(現在進行形)
输出
-
- Qiita「Ansibleのios_configモジュールの parents オプションの使い道を考える」
linesオプションとparantsオプションの使い分けで疑問があったので試しました
Qiita「AnsibleでCisco IOSのコンフィグを標準機能だけで収集する」
ios_templateモジュールを始めて使いました
Qiita「AnsibleでCisco IOSに対して冪等性のある「no shutdown」をする」
このあたりまじめに考えると少し難しいのかなと思いました
接下来 (jiekxia)
我想将Ansible总体上配置为角色,尝试使用Ansible Galaxy的内容。
在网络方面,我想要深入了解ios_config的match和replace选项的详细行为。