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选项的详细行为。

bannerAds