概要
ansible galaxy は簡単に言えば自分が作成した playbook (ロール) を公開するための機能です
すでに公開されている playbook がある場合簡単にそれを使うことができます
今回は docker のインストールを ansible galaxy で公開されているロールを使ってやってみました
環境
- macOS 10.13.5
- Ansible 2.5.5
ansible-galaxy のインストール
- pip install ansible
でインストールできます
Mac であれば Homebrew でもインストールできます
ロールのインストール
ansible galaxy で公開されている docker をインストールするためのロールは結構あります
今回はこれを使います
- ansible-galaxy install angstwad.docker_ubuntu
で OK です
インストールは ~/.ansible/roles/angstwad.docker_ubuntu
にされます
Tips
カレントディレクトリに .netrc
ファイルがあるとインストールに失敗することがあるようです
一旦 rename などをして再度 install コマンドを実行してみてください
[WARNING]: - angstwad.docker_ubuntu was NOT installed successfully: Failed to get data from the API server
(https://galaxy.ansible.com/api/): bad follower token 'method' (/Users/hawksnowlog/.netrc, line 4)
レシピ作成
- vim site.yml
- hosts: all
roles:
- role: angstwad.docker_ubuntu
今回は特にカスタマイズせずデフォルトのロールを使っています
カスタマイズできる変数の一覧はこちらで定義されているので必要に応じて site.yml 内で上書きしてください
- vim production
[worker]
192.168.100.10
[worker:vars]
ansible_user=root
ansible_connection=paramiko
ansible_ssh_pass=pass
ansible_ssh_private_key_file=./ssh_secret_key.pem
今回は SSH の鍵認証を使っています
認証情報は Inventory ファイルにすべて記載しました
また ansible-connection=paramiko
にしないと you must install the sshpass program
のエラーになるので明示的に指定します
ファイルはこれだけです
あとは実行してみましょう
実行
ansible-playbook -i production site.yml
で OK です
docker と docker-compose のインストールが始まります
ok=23, changed=9 で終了しました
インストールされていたバージョンはかなり最新のものがインストールされていました
root@ubuntu:~# docker -v
Docker version 18.03.1-ce, build 9ee9f40
root@ubuntu:~# docker-compose -v
docker-compose version 1.21.2, build a133471
冪等性を確認するために再度流してみましたが特にエラーになることはありませんでした
最後に
ansible-galaxy を使って公開済みのロールを使ってみました
自分で作り直す必要がないので便利です
が、公開されているロールが何をしているかは不明なので詳細はコードを読むしかありません
今回のロールはかなり簡単なものだったので良いのですが複雑なものになると読むのに一苦労なので自分作ったほうが良いケースもあるかもしれません
0 件のコメント:
コメントを投稿