2018年6月25日月曜日

ansible-galaxy を使って Ubuntu に docker をインストールしてみた

概要

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 件のコメント:

コメントを投稿