作为基础设施学习工具的Ansible
Chef和Puppet是常用的配置管理工具之一,而Ansible也是其中之一。但是,我认为它不仅仅是一个配置管理工具,还可以作为学习基础设施方面知识的工具。由于我自己也是初学者,所以在写作过程中可能有很多不足之处,欢迎批评指正。
特点和写法
(tiè hé xiě fǎ)
首先,让我们简单列举一下Ansible的特点。
-
- 対象の環境にSSH接続さえできれば環境構築を行えるのでシンプル
-
- 書いた順に処理が実行されるのでシンプル
-
- YAMLで書けるのでシンプル
-
- シンプルなので初期の学習コストが低い!
- Chefに挫折した人でもいける(はず)
我认为尽管Ansible本身是用Python编写的,但几乎不需要意识到Python的存在。唯一需要注意的是,目标环境需要安装Python。
作为一种例子,我们选择了从官方示例中构建nginx+wordpress环境。这样你可以对其结构有一个概念。
- ansible-examples/wordpress-nginx
这篇文章对于安装方法和介绍部分的说明非常易懂。
- Ansibleのドキュメントを読んでみたメモ – Qiita
为什么认为是好的
-
- Playbook(構成を記述したベースとなるYAML)さえ残っていれば構築した環境は破棄しても良いので経済的。
-
- 一部だけ学びたい時もベースのPlaybookがあればその一部を変更することでスムーズに学べる。
-
- Ansibleの記法はシンプルなので自分の作った構成の全体像がつかみやすい。
-
- gitで管理しておけば、変更の履歴も追いやすい。
-
- ドキュメントが充実しているので、試行錯誤中にドキュメントを読んでそこから学ぶことも多い。
- 公開されているPlaybookに参考に出来る情報が多い。本から学ぶのとはまた違った小さい粒度で学べる。
小贴士
-
- VagrantよりもDigital OceanなどのVPSがよさそう
テスト用にVagrantを使うのも良いけれど、都度、立ち上げるのにも時間が掛かるしPlaybookがある程度大きくなるとホストOSのパワーにもよるけれど、時間がかかることがある。時間単位で利用できるVPSを利用するのが良いと思います。
AWSも良いけれど、気軽に使えて料金も安くわかりやすいDigitalOceanが良いかも。
git管理で育てていく
学習用として使うならば、/ansible/nginx-railsのようなディレクトリを組んで、ansibleのディレクトリ以下をgit管理するのが良いかもしれません。たまに間違えて復活できなくなった時には、過去に戻ることができます。
在学习中使用工具的示例方式。
-
- 先尝试自己简单地编写一份Playbook。如果不确定如何写,可以查看官方文档或搜索 [想知道的内容] + ansible,会出现很多Playbook供参考。
-
- 如果对Ansible的结构感到困惑,可以查看最佳实践或在Ansible Galaxy搜索。
-
- 尝试启动一台新服务器并进行测试。
- 观察其运行情况并进行修正。
我基本上会重复这个动作。
其他的,总的来说也是一些有参考价值的页面。
Ansible入門 (全15回) – プログラミングならドットインストール
これをやれば絶対始められる。
ansible/ansible-examples
シンプルな記述で参考になる公式サンプル。
Ansible Documentation — Ansible Documentation
充実していて読みやすいドキュメント(英語)。
Best Practices — Ansible Documentation
ディレクトリ構成に迷った時に目を通す。ただし、これとそっくりの構成にする必要はないと思う。参考に(英語)。
Ansible Galaxy | Find, reuse, and share the best Ansible content
目的ごとにまとまったroleの公開場所。nginxとか、そういう単位で探してゆく(英語)。
日本语的书籍
非常易懂且易于阅读。虽然是一连串的指令,但建议在阅读到大概一半时就开始实践,然后再作为参考书在后面进行查阅是最好的。查阅时,它按主题划分,描述简练而不浪费时间,这对我非常有帮助。