users_vault.yml 腳本為 user4host.yml,dev, test 產生的群組及帳號不同於 prod:
[deyu1@kvm19 ansible]$ vim user4hosts.yml
[deyu1@kvm19 ansible]$ cat user4hosts.yml
---
- name: Create users with Valut
hosts: dev test prod
vars_files: pwlist.yml
tasks:
- block:
- name: Ensure group "devgrp" exists
group:
name: devgrp
state: present
- name: Add users
user:
name: "{{ item }}"
groups: devgrp
password: "{{ devpw | password_hash('sha512') }}"
loop:
- peter
- linda
when: '"dev" in group_names or "test" in group_names'
- block:
- name: Ensure group "prodgrp" exists
group:
name: prodgrp
state: present
- name: Add user 'rita'
user:
name: rita
groups: prodgrp
password: "{{ prodpw | password_hash('sha512') }}"
when: '"prod" in group_names'
--ask-vault-pass 輸入密碼解密 pwlist.yml。
[deyu1@kvm19 ansible]$ ansible-playbook user4hosts.yml --ask-vault-pass Vault password: PLAY [Create users with Valut] ************************************************* TASK [Gathering Facts] ********************************************************* ok: [kvm11] ok: [kvm12] ok: [kvm13] ok: [kvm14] TASK [Ensure group "devgrp" exists] ******************************************** skipping: [kvm13] skipping: [kvm14] changed: [kvm11] changed: [kvm12] TASK [Add user 'peter'] ******************************************************** skipping: [kvm13] skipping: [kvm14] changed: [kvm11] changed: [kvm12] TASK [Ensure group "prodgrp" exists] ******************************************* skipping: [kvm11] skipping: [kvm12] changed: [kvm13] changed: [kvm14] TASK [Add user 'rita'] ********************************************************* skipping: [kvm11] skipping: [kvm12] changed: [kvm13] changed: [kvm14] PLAY RECAP ********************************************************************* kvm11 : ok=3 changed=2 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0 kvm12 : ok=3 changed=2 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0 kvm13 : ok=3 changed=2 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0 kvm14 : ok=3 changed=2 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0
--vault-password-file 指定金鑰檔解密 pwlist.yml。
[deyu1@kvm19 ansible]$ ansible-playbook user4hosts.yml --vault-password-file=password.txt PLAY [Create users with Valut] ************************************************* TASK [Gathering Facts] ********************************************************* ok: [kvm14] ok: [kvm13] ok: [kvm11] ok: [kvm12] TASK [Ensure group "devgrp" exists] ******************************************** skipping: [kvm13] skipping: [kvm14] ok: [kvm12] ok: [kvm11] TASK [Add user 'peter'] ******************************************************** skipping: [kvm13] skipping: [kvm14] changed: [kvm11] changed: [kvm12] TASK [Ensure group "prodgrp" exists] ******************************************* skipping: [kvm11] skipping: [kvm12] ok: [kvm13] ok: [kvm14] TASK [Add user 'rita'] ********************************************************* skipping: [kvm11] skipping: [kvm12] changed: [kvm13] changed: [kvm14] PLAY RECAP ********************************************************************* kvm11 : ok=3 changed=1 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0 kvm12 : ok=3 changed=1 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0 kvm13 : ok=3 changed=1 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0 kvm14 : ok=3 changed=1 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0