Ansible (3) こんなコマンドあるよ<後編>

こんにちは。
グローバルソリューション事業部の吉村です。

Ansibleまとめ第3回目。
前回に引き続き、Ansibleのコマンドについてまとめます!

ここからはおそらくあまり使わないコマンドです。

ansible-galaxy

Ansible Galaxy を利用するためのコマンド。
前回簡単にご紹介した Ansible Galaxy はAnsbileユーザのためのSocialサービスです。

https://galaxy.ansible.com/

GitHUBと連携して、Ansibleユーザが作成したroleを管理出来ます。

ansible-test-for-blogというroleを作ります。

roleのひな形が作られます。

後は、自分でこのroleのPlaybookを編集して、GitHUB上のレポジトリにpushして、そのレポジトリを Ansible Galaxy のWebサイトにアップロードするだけ。

2度手間じゃん!と思うかもしれませんが、roleという単位毎に分かれているのは良いことですし、そこはAnsibleユーザのためのポータルサイトということで。

これで誰でも role を利用可能になります。

もちろん逆に、誰かが作ったroleをインストールもできます。

試しに、Ansibleスタッフbennojoyさんが作ったnginx role(Nginxインストール用のrole)をいただきましょう。

ちゃんとインストールされています。

ありがとう!bennojoyさん!

ansible-pull

通常はpush型のアーキテクチャであるAnsibleをpull型にするコマンドです。
つまり、リモートノードの方からAnsibleのPlaybookを求めにきます。

調べてみると、利用方法としては、

GitHUBのレポジトリに実行するPlaybookを置いておく、crontabにansible-pullを利用するように設定する。

これによって、Playbookの変更をGitHUBのレポジトリにアップロードしておけば、自動的にリモートノードにも反映されるという仕組みが作れるようです。

使用するには、まずリモートホストがansible-pullを使えるようにします。
公式がansible-pullを使えるようにするplaybookを用意しているので、それを利用しましょう。

1. ansible サーバ上で、公式から git clone

2. pusll型にしたいリモートノードをインベントリファイルに記載

3. pull型で実行したいPlaybookが置いてあるGitHUBのレポジトリを指定

4. リモートホストに対してansible_pull.ymlを実行

これで、リモートノードがpull型になりました。
リモートノードのcrontab設定を確認したら、勝手に追加されています。

 

ansible-vault

ansible のYAMLデータを暗号化するコマンド。
暗号化したYAMLファイル(test2.yml)を作ります。

その後、test2.ymlを標準出力で見てみると、、、

暗号化されていますね!

編集したいときは、

でできます。

Ansibleのコマンドの話は以上です!

次回は、Ansible の ModuleとPlaybookの話です。
お楽しみに!

 

Share on LinkedIn
LINEで送る
Pocket

吉村

吉村

クララオンライン グローバルビジネスストラテジー部でマーケティング担当として働いています。 クラウド関連技術と中国関連の情報をお届けしてます。 たまに DJ とかします。日本語RAPが大好きです。