centosの時よりも詰まったり準備が必要でした。
今後も何度か行いそうなので、こちらに忘備録を残します。
ubuntu16.04
やること
- 実行ユーザ作成
- (nano -> vimにする)
- ansibleのsudo追加
- 鍵の設定
- (~/.ssh/configに追記)
- python2.7のインストール
- dry-runのためにpython-aptをインストール
実行ユーザ作成
$ sudo adduser ansible
nano -> vimにする
vimmerが多いところは変えておいてあげると親切です。
$ sudo update-alternatives --config editor
ansibleのsudo追加
構築系の処理は become: yes
を使うことが多いので、その際パスワードをなしにsudo使えるようにしておくと良いかもです。
$ vi /etc/sudoers.d/users
#以下を追記
ansible ALL=(ALL) NOPASSWD: ALL
鍵の設定
ansibleがインストールされているサーバで作成した、該当の公開鍵をクライアントの方に登録します。
以下のコマンドをansibleが入っているサーバから実行。
$ ssh-copy-id -i ~/.ssh/[[対象の公開鍵]].pub ansible@<target_host>
~/.ssh/configに追記
ansibleを実行させた時にスムーズにsshさせるために、クライアントの情報を追記します。
ansibleサーバ: ~/.ssh/config に以下を追記。
host [[対象サーバのホストを記入]]
StrictHostKeyChecking no
IdentityFile ~/.ssh/[[秘密鍵]]
↑最低限の設定
python2.7のインストール
ansibleはデフォルトではpythonの2系を使うので、2.7をインストールします。
最初はpyenvでバージョン管理しようとしたのですが、playbookでsudoのtasksを実行させようとした時にできなかったので、結局普通に2.7をインストールしてパスを書き換えました。
もっと他にいいやり方があるかもしれません..
$ sudo apt-get install python2.7
デフォルトではpython2.7と3.6が入っているらしいですが、minimalインストールの時は2系が入っていなかったので、無ければいれます。
このままだと python2.7 -V
のようにしないとコマンドがつかえないので、以下のようにシンボリックリンクを作ります。
$ ls -la /usr/bin/python*
#pythonコマンドがないことを確認してから
$ sudo ln -s /usr/bin/python2.7 /usr/bin/python
#確認
$ ls -la /usr/bin/python
lrwxrwxrwx 1 root root 9 Nov 24 09:52 /usr/bin/python -> python2.7
$ python -V
Python 2.7.12
ちなみにansibleでpython3系を使わせるようにしたい時は、playbook実行時に以下のオプションをつけると動きます。
-e 'ansible_python_interpreter=/usr/bin/python3'
dry-runのためにpython-aptをインストール
これが無ければ --check モードでの実行ができません。
$ sudo apt-get install python-apt
個人的にはよく使うので python-selinuxも入れておく。
(ansibleのaptモジュール使って入れようとすると毎回エラーが出てつまるから。)
以上。