Lab Session
[cnode@control-node ansible-lab]$ ls
ansible.cfg files inventory undeploy-webserver.yml webserver.yml
[cnode@control-node ansible-lab]$ vim usercreate.yml
[cnode@control-node ansible-lab]$ ansible-doc user
/EXAMPLES
[cnode@control-node ansible-lab]$ ansible-doc group
/EXAMPLES
[cnode@control-node ansible-lab]$ vim usercreate.yml
[cnode@control-node ansible-lab]$ ls
ansible.cfg files inventory undeploy-webserver.yml usercreate.yml webserver.yml
[cnode@control-node ansible-lab]$ mv usercreate.yml multiplays.yml
[cnode@control-node ansible-lab]$ ls
ansible.cfg files inventory multiplays.yml undeploy-webserver.yml webserver.yml
[cnode@control-node ansible-lab]$ mkdir done
[cnode@control-node ansible-lab]$ mv undeploy-webserver.yml webserver.yml done/
[cnode@control-node ansible-lab]$ ls
ansible.cfg done files inventory multiplays.yml
[cnode@control-node ansible-lab]$ ansible-playbook --syntax-check multiplays.yml
[WARNING]: Could not match supplied host pattern, ignoring: dev
playbook: multiplays.yml
[cnode@control-node ansible-lab]$ cat inventory
[develop]
dev1
dev2
[test]
testserver
[production]
prodserver
[testprod:children]
test
production
[cnode@control-node ansible-lab]$ vim multiplays.yml
[cnode@control-node ansible-lab]$ ansible-playbook --syntax-check multiplays.yml
playbook: multiplays.yml
[cnode@control-node ansible-lab]$
[cnode@control-node ansible-lab]$ ls
ansible.cfg done files inventory multiplays.yml
[cnode@control-node ansible-lab]$ vim multiplays.yml
[cnode@control-node ansible-lab]$ cat multiplays.yml
---
# Creating a multi-play playbook
- name: Create groups and users on develop nodes
hosts: develop
tasks:
# Create a group "employee"
- name: Create a group "employee"
ansible.builtin.group:
name: employee
state: present
# Create a group "devgroup"
- name: Create a group "devgroup"
ansible.builtin.group:
name: devgroup
state: present
# create a user "user1"
- name: Add the user 'user1'
ansible.builtin.user:
name: user1
group: employee
groups: devgroup
uid: 1005
state: present
- name: Create groups and users on testprod nodes
hosts: testprod
tasks:
# Create a group "staff"
- name: Create a group "staff"
ansible.builtin.group:
name: staff
state: present
# Create a group "maintainer"
- name: Create a group "maintainer"
ansible.builtin.group:
name: maintainer
state: present
# create a user "user2"
- name: Add the user 'user2'
ansible.builtin.user:
name: user2
group: staff
groups: maintainer
uid: 1010
state: present
[cnode@control-node ansible-lab]$ ansible-playbook --check multiplays.yml
PLAY [Create groups and users on develop nodes] *************************************
TASK [Gathering Facts] **************************************************************
ok: [dev1]
ok: [dev2]
TASK [Create a group "employee"] ****************************************************
changed: [dev2]
changed: [dev1]
TASK [Create a group "devgroup"] ****************************************************
changed: [dev2]
changed: [dev1]
TASK [Add the user 'user1'] *********************************************************
changed: [dev2]
changed: [dev1]
PLAY [Create groups and users on testprod nodes] ************************************
TASK [Gathering Facts] **************************************************************
ok: [testserver]
ok: [prodserver]
TASK [Create a group "staff"] *******************************************************
changed: [prodserver]
changed: [testserver]
TASK [Create a group "maintainer"] **************************************************
changed: [testserver]
changed: [prodserver]
TASK [Add the user 'user2'] *********************************************************
changed: [testserver]
changed: [prodserver]
PLAY RECAP **************************************************************************
dev1 : ok=4 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev2 : ok=4 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
prodserver : ok=4 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
testserver : ok=4 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[cnode@control-node ansible-lab]$ ansible-playbook multiplays.yml
PLAY [Create groups and users on develop nodes] *****************************************************************************************************************************
TASK [Gathering Facts] ******************************************************************************************************************************************************
ok: [dev1]
ok: [dev2]
TASK [Create a group "employee"] ********************************************************************************************************************************************
changed: [dev1]
changed: [dev2]
TASK [Create a group "devgroup"] ********************************************************************************************************************************************
changed: [dev2]
changed: [dev1]
TASK [Add the user 'user1'] *************************************************************************************************************************************************
changed: [dev1]
changed: [dev2]
PLAY [Create groups and users on testprod nodes] ****************************************************************************************************************************
TASK [Gathering Facts] ******************************************************************************************************************************************************
ok: [testserver]
ok: [prodserver]
TASK [Create a group "staff"] ***********************************************************************************************************************************************
changed: [prodserver]
changed: [testserver]
TASK [Create a group "maintainer"] ******************************************************************************************************************************************
changed: [testserver]
changed: [prodserver]
TASK [Add the user 'user2'] *************************************************************************************************************************************************
changed: [testserver]
changed: [prodserver]
PLAY RECAP ******************************************************************************************************************************************************************
dev1 : ok=4 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
dev2 : ok=4 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
prodserver : ok=4 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
testserver : ok=4 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[cnode@control-node ansible-lab]$
[cnode@control-node ansible-lab]$ ansible develop -a 'id user1'
dev2 | CHANGED | rc=0 >>
uid=1005(user1) gid=1001(employee) groups=1001(employee),1002(devgroup)
dev1 | CHANGED | rc=0 >>
uid=1005(user1) gid=1001(employee) groups=1001(employee),1002(devgroup)
[cnode@control-node ansible-lab]$ ansible develop -m ansible.builtin.getent -a "database=passwd"
dev1 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3",
"getent_passwd": {
...
"cnode": [
"x",
"1000",
"1000",
"Control Node",
"/home/cnode",
"/bin/bash"
],
...
"user1": [
"x",
"1005",
"1001",
"",
"/home/user1",
"/bin/bash"
]
}
},
"changed": false
}
dev2 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3",
"getent_passwd": {
...
"user1": [
"x",
"1005",
"1001",
"",
"/home/user1",
"/bin/bash"
]
}
},
"changed": false
}
[cnode@control-node ansible-lab]$
[cnode@control-node ansible-lab]$ ansible develop -a "getent group employee"
dev2 | CHANGED | rc=0 >>
employee:x:1001:
dev1 | CHANGED | rc=0 >>
employee:x:1001:
[cnode@control-node ansible-lab]$ ansible develop -a "getent group devgroup"
dev1 | CHANGED | rc=0 >>
devgroup:x:1002:user1
dev2 | CHANGED | rc=0 >>
devgroup:x:1002:user1
[cnode@control-node ansible-lab]$
[cnode@control-node ansible-lab]$ ansible testprod -a "id user2"
testserver | CHANGED | rc=0 >>
uid=1010(user2) gid=1001(staff) groups=1001(staff),1002(maintainer)
prodserver | CHANGED | rc=0 >>
uid=1010(user2) gid=1001(staff) groups=1001(staff),1002(maintainer)
[cnode@control-node ansible-lab]$ ansible testprod -a "getent group staff"
testserver | CHANGED | rc=0 >>
staff:x:1001:
prodserver | CHANGED | rc=0 >>
staff:x:1001:
[cnode@control-node ansible-lab]$ ansible testprod -a "getent group maintainer"
testserver | CHANGED | rc=0 >>
maintainer:x:1002:user2
prodserver | CHANGED | rc=0 >>
maintainer:x:1002:user2
[cnode@control-node ansible-lab]$ echo $?
0
[cnode@control-node ansible-lab]$
[cnode@control-node ansible-lab]$ ansible-doc uri
...
[cnode@control-node ansible-lab]$