Ansibleにてhostユーザーやユーザーの追加などす。
ホストの指定
以前紹介したほうほうでは原始的に/etc/ansible/hostsにhostのipを指定する、などの方法をとりましたが、これですともちろん保守性に問題があります。
一般的にはファイルを用意し、ここにhost情報などを保存しておきます。
例えば hostlistなどと書いたファイルを下記のように設定し、
1 2 |
[target] 192.168.33.11 |
のように書いておきます。
そしてansibleのファイルのhostを下記の用に書いておき、
1 |
- hosts: target |
実行時に
1 |
ansible-playbook -i hostlist 実行時のファイル |
と入力すれば指定されたhostに対してインストールを行います。
http://qiita.com/NewGyu/items/5de31d76d2488ab27ed6
ユーザーの追加
ansibleではユーザーの追加なども行えます。
1 2 3 4 5 6 7 8 9 |
- hosts: target remote_user: root vars_files: - ./vars/userinfo.yml tasks: - name: "add a new user" user: name={{userinfo.user.user_name}} password={{userinfo.user.user_password}} groups={{userinfo.user.group}} - name: "change /etc/sudoer" lineinfile: dest=/etc/sudoers.d/{{ userinfo.user.user_name }} line="{{ userinfo.user.user_name }} ALL=(ALL) NOPASSWD:ALL" create=yes owner=root group=root mode=0440 |
./vars/userinfo.yml
1 2 3 4 5 |
userinfo: user: user_name: tarou user_password: $1$ZO86ltb6$hUWh7Ha2LoeUDSdF9nUNz/ group: apache |
変数を別ファイルに
着眼点としてはvars_file:で変数を外だしにできます。
一般的なプログラム同様中に直接書いていては保守性が低下しますので、外に書いておいておいたほうが良いでしょう。yml形式で書いておきましょう。
http://qiita.com/okataitai/items/ad02dbbcbe710ba56589
パスワードのハッシュ化
パスワードは平文では登録できず、ハッシュ化しておく必要があります。
作り方ですが、tarou_passをパスワードで使いたい場合下記のようになります。
1 |
openssl passwd -salt hogehoge(←任意の文字 ) -1 tarou_pass(使いたいパスワード) |
パスワードなしでsudo
最後のlinefineの一文ですが、/etc/sudeors.dの下に追加することでパスワードなしでsudoコマンドを使うことができます。
http://blog.5000164.jp/2015-11-ansible_sudo/
ユーザー情報に関して
remote_userですが、どうやら上書きがうまくいかないようでかかずに実行時に -u ユーザー名でうまく行けるみたいです。