Ansibleを使ってユーザアカウントを作るyamlを。
Passwordの変更を一気に実施するというよりはアカウントの作成とPasswordを設定するのを目的にします。
yamlも書き方色々なので色んな方々のパターンがありますね。
やりたい事
- 複数のアカウント作成を流し込みたい
- uid,gid,Passwordも設定してみる(作成時にアカウントexpireさせるのが良いとは思いますが)
今回のplaybookを動かしたAnsibleバージョン
2.0.1 (古い・・・)
playbook
uid, gid, commet等を利用したいためuserモジュールの引数としてパラメータを渡します。
またupdate_password=on_create
を付け、アカウントがcreateされたときのみパスワードが更新されるようにします。
あとはwith_items
でループさせる。ループさせる内容は今回は別ファイルにしてvars_files
として読み込みしています。
--- - hosts: all gather_facts: no vars_files: - userdata.yml tasks: - name: Create Accounts user: name={{ item.user_name }} password={{ item.user_passwd }} comment={{ item.user_comment }} group={{ item.user_group }} uid={{ item.user_id }} update_password=on_create with_items: '{{ user_lists }}' tags: user_create
userdataリストのyaml
playbookにてuid, gid, commet等を渡せるように辞書形式で記載していきます。
アカウントがかなりの数がある場合は手で作成するのが手間なので、formatをexportするツールを用意しておくと良いかと思います。
--- user_lists: - { user_name: 'hogename1', user_comment: 'ore ha hoge1', user_group: '100', user_id: '1001',user_passwd: '$6$fwAEUE29$laf4.'} - { user_name: 'hogename2', user_comment: 'ore ha hoge2', user_group: '100', user_id: '1002',user_passwd: '$6$fwAEUE29$laf4.'} - { user_name: 'hogename3', user_comment: 'ore ha hoge3', user_group: '100', user_id: '1003',user_passwd: '$6$fwAEUE29$laf4.'}
ちなみに、辞書内のuser_passwd
はOSによってhashタイプが違うのでご注意を。
新規でPasswordを作る場合はgrub-crypt
がよく使われるような気がします。(以下はSHA512の作成コマンド例,MD5もいけます)
# grub-crypt --sha512 Password: Retype password: $6$fwAEUE29$laf4.