notebook

都内でWEB系エンジニアやってます。

ansible-galaxyにroleを上げてみる

plenvのroleがないかansible-galaxyを見ていたらなかったのであげてみました

公開するほどのものでもない気もしますが何事もやってみないとねということで

どこかで誰かのお役に立てれば幸いです

ロールの作成

  • ディレクトリの作成
$ ansible-galaxy init plenv
- plenv was created successfully
  • meta/main.ymlの修正

カテゴリとか、ライセンスとかユーザー名とかを自分に合わせて修正するみたいです

取りあえずなので下記のようにしました

  • meta/main.yml
---
galaxy_info:
  author: swfz
  description: install plenv
  license: license (GPLv2, CC-BY, etc)
  min_ansible_version: 1.2
  platforms:
  - name: EL
    versions:
    - 6
  categories:
  - development
dependencies: []
  • README.md

READMEに使用例とか、変数とか使い方を書きます

  • 中身

既に別のディレクトリで作成済みのファイルたちをansible-galaxy initで作ったディレクトリにコピーしました

  • push

githubリポジトリを作ってpush

今回は「ansible-plenv」という名前でリポジトリを作成

ansible-galaxyへ登録

  • 登録

ログインして「Add Role」画面で先ほど登録したリポジトリの情報を記入します

* username: swfz
* repository: ansible-plenv
* alternate name: ansible-plenv

Add Roleボタンを押下して完了!

[f:id:swfz:20150611003433p:plain]

確認

  • ansible-galaxyからDLして確認

ansible-galaxy install role名

デフォルトでconfigのroles_pathにインストールされる模様

別ユーザのホーム以下に設定していたので実行してみたら怒られました。。。

-p オプションでインストールする場所を指定できるようです

$ ansible-galaxy install swfz.plenv -p ~/roles
  • 確認
$ ansible-galaxy list
- swfz.plenv, master
  • 実行

適当なplaybookに記述してplaybookを実行

- hosts: test
  sudo: yes
  roles:
   - { role: swfz.plenv, app_user: 'vagrant', plenv_local_version: '5.20.2' }
$ ansible-playbook -i hosts test.yml

無事plenvがインストールされました

実際にやってみて思ったけど登録も簡単だしどんどん公開していきたいですね