こちらはフロムスクラッチ Advent Calendar 2017の17日目の記事です。
はじめに(背景)
- linuxで特定のフォルダ配下のみでファイルシステムのなんらかの変更があった場合に通知しようと思った時に、書き記事を見つけた。
- 再帰的にフォルダを監視できるincronライクなコマンド
- 普段ansibleを使っているので、ansible-galaxyからrolesがすでにないか探した。
- なかったので、「もう自分で公開しましょ!」って思ったので、公開してみました!
前提
ページ | 概要 |
---|---|
ansible ver.2.3.1 |
構成管理ツール |
ansible-galaxy | ansibleのrolesを公開するサービス |
watcher | incronのようなfile/dirの変更を検知してジョブを実行するツール |
参考
基本的にこちらの記事の方の修正を参考にさせていただきました
http://blog.n-z.jp/blog/2017-06-03-ansible-galaxy-new-role.html
手順
1. ansibleで公開するrole用のrepoを作成する
ex.) 一般的には、「ansible-role-xxxxxx」という形が多い気がする。
githubで作成しました。
2. ansible-galaxy init <githubのrepo名>
で、デフォルトのroleセットを作成する
~ ❯❯❯ mkdir ansible
~ ❯❯❯ cd ansible
~/ansible ❯❯❯ ansible-galaxy init ansible-role-watcher
- ansible-role-watcher was created successfully
~/ansible ❯❯❯ ll
total 0
drwxr-xr-x 14 kitamurajun staff 476 12 18 14:10 ansible-role-watcher
~/ansible ❯❯❯ ll ansible-role-watcher
total 8
-rw-r--r-- 1 kitamurajun staff 681 12 18 13:05 README.md
drwxr-xr-x 3 kitamurajun staff 102 12 18 13:05 defaults
drwxr-xr-x 3 kitamurajun staff 102 12 18 13:05 files
drwxr-xr-x 3 kitamurajun staff 102 12 18 13:05 handlers
drwxr-xr-x 3 kitamurajun staff 102 12 18 13:05 meta
drwxr-xr-x 3 kitamurajun staff 102 12 18 13:05 tasks
drwxr-xr-x 3 kitamurajun staff 102 12 18 13:05 templates
drwxr-xr-x 4 kitamurajun staff 136 12 18 13:05 tests
drwxr-xr-x 3 kitamurajun staff 102 12 18 13:05 vars
3. 修正
- 実際のwatcher install処理の作成
- LICENSEの追加
- README.mdの修正
4. githubへpush
git remote add origin git@github.com:jkkitakita/ansible-role-watcher.git
git push -u origin master
git tag v1.0.0
git push --tags
5. ansible galaxyへ公開
5.1 ansible-galaxyのページへ
5.2 右上からログインする
※ 前提として、ansible-galaxyへgithubユーザー登録が必要
5.3 再度、右上のマイアカウントのところから、MyImportsへ遷移する
5.4 「Add」を押下
5.5 「refresh」を押下
5.6 対象となるrolesを有効にする
※ meta/main.ymlの記載内容が間違っていたりする場合、失敗するので、その際はコンソールを確認すること
完成!
一応、ローカルでansible-galaxy install
できることも確認。
~/d/ansible ❯❯❯ ansible-galaxy install jkkitakita.watcher
- downloading role 'watcher', owned by jkkitakita
- downloading role from https://github.com/jkkitakita/ansible-role-watcher/archive/v1.0.0.tar.gz
- extracting jkkitakita.watcher to /Users/kitamurajun/darunia-infra/ansible/roles/jkkitakita.watcher
- jkkitakita.watcher was installed successfully
さいごに
人のものをお借りしてはいますが
自分で何か作ったものを公開するのは初めてでした。
(全然品質は高くないですが。。。)
やってて、思ったのが、LICENSE周りとかちゃんと勉強して
ansibleだけではなく、OSS周りも貢献していきたいなと思いました。