[Ansibleとは?]とあるサービス開発者がAnsibleの良さを伝えたい

Ansible
Nishipy

最近使っている、Ansibleについて書きます。
以前↓の記事でも少し取り上げました。
今回はこのAnsibleの良さや使い方について少し詳しくお話しします。

大企業のインフラエンジニアのツラい3つの話
Nishipyお久しぶりです。にしぱいです。今回は「インフラエンジニア」という仕事について、ご紹介したいと思います。1. そもそもインフラって何?一般的にインフラと聞くと、水道や電気やガスを指します。生活の基盤となるもの、あ...

1. 構成管理ツールって何?

Ansibleは、構成管理ツールの1つです。
そもそも、構成管理って何でしょうか。

構成管理(こうせいかんり、Configuration Management、CM)とは、システムのライフサイクルにわたる範囲、性能、機能的および物理的要件、設計、操作に関する情報などを確立し維持する作業またはプロセスである。 [Wikipedia]

構成管理とは、何かしらの情報を確立し、維持することらしいです。

通常、大企業では手順書と呼ばれるドキュメントに、OSの設定方法がまとめられています。これに沿って、人間がOSを設定し、開発者や顧客に提供します。

しかし、人間はミスをする生き物です。
いくら手順書に沿って作業していても、人手で作業する限り、必ずミスは発生します

そこで、登場するのが構成管理ツールです。
手順書に書いたOS設定を、コンピュータに自動でやってもらうことで、
インプット(手順書)が同じなら、必ず同じアウトプット(サーバ)が出来上がります。

構成管理ツールとして有名なものは、以下の通りです。

  • Ansible

  • Chef

 

  • Puppet

e.t.c.

2. Ansibleのよいところ

2.1. 自動でOS設定できる

私のような、構成管理ツール初心者からすると、やっぱり自動でできるのがすごいです。
おじさんたちがサーバールームに籠って行っていた作業を、勝手にやってくれるなんて!

2.2. エージェントレス

構成管理ツールの中には、設定を入れる端末に、エージェントを入れないと動かないものがあります。
しかし、Ansibleはエージェントが必要ありません!
LinuxはSSHが、WindowsはWinRMが起動していれば、何とかなります。

2.3. WindowsもLinuxも構成管理できる

Ansibleを入れておくサーバは、Linuxに限ります。(2018/09現在)
しかし、Ansibleから構成管理できるマシンは、Linuxはもちろん、WindowsでもOKです。

2.4. Playbookが読み易い!書き易い!

Playbookとは、Ansibleさんが読む手順書です。
構成管理ツール導入にあたっては、手順書のコードかが一番のネックでしょうが、
AnsibleのPlaybookはとてもシンプルで読み書きし易いです。

例えば、Ansibleを利用して、対象hostにsampleフォルダを作り
Ansibleが入っているサーバにあるsample.txtを、転送するには以下のように書きます。

 

Playbookや、YAML形式です。(拡張子:yml)
インデントに規則があり、適当にするとSyntax Errorで怒られるので、自ずと読み易いコードになります。
ちなみに、YAMLは、”YAML Ain’t a Markup Language”の略語らしいです。
YAML = YAML Ain’t a Markup Language = (YAML Ain’t a Markup Language) Ain’t a Markup Language …

shellやcopyは、Ansibleのモジュールです。
モジュールは豊富に用意されており、現在も追加・改良され続けています。
モジュール一覧

3. Ansibleの触り方

こんな便利なAnsible、試しに触ってみたいですよね?!
Macであれば、Homebrewで一発で入ります。
また、AnsibleはPythonで書かれているので、pipでも入ります。

$    brew install ansible

$    pip install ansible

 

インストール後は、/etc/ansibleというディレクトリの配下には、ファイルが作成されています。

$    ls /etc/ansible/

ansible.cfg        hosts

  • ansible.cfg
    Ansibleの設定ファイルです。ログを出力する場所などを書きます。
  • hosts
    対象マシンの情報を書いておきます。対象マシンへ接続するためのポートやユーザ/パスワードの情報などもここに書きます。

4. 結論

いかがでしたか?Ansibleの先っちょしか話していませんが、まだまだできることはあります。
「大企業のインフラエンジニアがAnsibleの良さを伝えたい(2)」でお会いしましょう。(予定)

以上

 

< 関連記事 >

とあるサービス開発者が英語でTerraformとAnsibleの違いを調査した
NishipyTerraformというOSSを最近知りました。Ansibleとの違いがわからず調査したのですが、英語の記事しか見つからず、地味に苦労したのでまとめます。1. Terraformとは?Terraf...

コメント