はじめに
こんにちは。インフラエンジニアレベル1のf_prgです。
業務では、AnsibleやChefも使っております。
Chefのsupermarketにはdstatのcookbookを公開しているのですが
AnsibleにもAnsible Galaxyに公開してみようと思います。
https://supermarket.chef.io/cookbooks/dstat
ansible-galaxyに登録する
私はTwitterアカウントと連携してログインしました。
ソーシャル系アカウントが使えるのは便利ですね。
ansibleのroleを作成する
下記の初期コマンドを実行します。
Mac上で構築して、gitにpushしました。
[f_prg@ansible-galaxy] $ ansible-galaxy init dstat - dstat was created successfully [f_prg@ansible-galaxy] $ ls dstat/ README.md files meta templates defaults handlers tasks vars
ここでのtaskやファイルなどは割愛します。
https://github.com/fprg/ag-dstat
ご興味がありましたら、こちらをご覧ください。
作成したロールをローカルに対して実行します
EC2(Amazon Linux)にAnsibleをインストールします
[root@ip-10-10-0-85 ~]# pip install ansible
Ansible Galaxyからロールをインストールします
[root@ip-10-10-0-85 ~]# ansible-galaxy install f_prg.dstat [root@ip-10-10-0-85 ~]# ls /etc/ansible/roles/f_prg.dstat/ defaults files handlers meta README.md tasks vars
/etc/ansible/roles/の下にインストールされました。
プレイブックを用意します
ローカル実行できるように、playbook.ymlを作成しました。
- hosts: localhost connection: local sudo: true roles: - { role: f_prg.dstat }
プレイブックを実行します
実行する際に、-iオプションはinventory_hostsが必要ですが
今回はlocal実行なので/dev/nullを指定してます。
[root@ip-10-10-0-85 ~]# ansible-playbook ./playbook.yml -i /dev/null
ローカルで実行したのでsourceコマンドで読み込まなきゃいけないですね。
インベントリホストに対して実行すれば、sshログインしたら使えるようになります。
[root@ip-10-10-0-85 ~]# source /etc/profile.d/dstat.sh
まとめ
簡単に、自分のロールを公開できました。
GitHub.comとの連携もしてますから、Pull Requestとかで
Social CodingもInfrastructure as a codeも活かせそうですね。
今回の成果物です。
https://galaxy.ansible.com/list#/roles/4259
参考資料・リンク
https://galaxy.ansible.com/list#/roles/4259
https://supermarket.chef.io/cookbooks/dstat