Ansible-5-部署ansible综合实验
//开始练习
[student@workstation ~]$ lab deploy-review start
Setting up workstation for lab exercise work:
· ansible package is installed on workstation................. SUCCESS
//查看ansible版本
[student@workstation ~]$ ansible --version
ansible 2.8.0
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/student/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.6/site-packages/ansible
executable location = /usr/bin/ansible
python version = 3.6.8 (default, Apr 3 2019, 17:26:03) [GCC 8.2.1 20180905 (Red Hat 8.2.1-3)]
[student@workstation ~]$ mkdir deploy-review
[student@workstation ~]$ cd deploy-review/
[student@workstation deploy-review]$ cat > ansible.cfg << end
> [defaults]
> remote_user = devops
> inventory = ./inventory/inventory
> ask_pass = false
>
> [privilege_escalation]
> become = true
> become_method = sudo
> become_user = root
> become_ask_pass = false
> end
[student@workstation deploy-review]$ mkdir inventory
[student@workstation deploy-review]$ vim ansible.cfg
[student@workstation deploy-review]$ cd inventory/
[student@workstation inventory]$ wget http://materials.example.com/labs/deploy-review/inventory
--2020-11-09 23:06:09-- http://materials.example.com/labs/deploy-review/inventory
Resolving materials.example.com (materials.example.com)... 172.25.254.254
Connecting to materials.example.com (materials.example.com)|172.25.254.254|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 125
Saving to: ‘inventory’
inventory 100%[==============================================================================================================================>] 125 --.-KB/s in 0s
2020-11-09 23:06:09 (10.3 MB/s) - ‘inventory’ saved [125/125]
[student@workstation inventory]$ ls
inventory
[student@workstation inventory]$ cat inventory
[internetweb]
serverb.lab.example.com
[intranetweb]
servera.lab.example.com
serverc.lab.example.com
serverd.lab.example.com
[student@workstation deploy-review]$ ansible all -a 'id'
serverb.lab.example.com | CHANGED | rc=0 >>
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
servera.lab.example.com | CHANGED | rc=0 >>
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
serverd.lab.example.com | CHANGED | rc=0 >>
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
serverc.lab.example.com | CHANGED | rc=0 >>
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[student@workstation deploy-review]$ ansible all -a 'cat /etc/motd'
serverd.lab.example.com | FAILED | rc=1 >>
cat: /etc/motd: No such file or directorynon-zero return code
serverb.lab.example.com | FAILED | rc=1 >>
cat: /etc/motd: No such file or directorynon-zero return code
servera.lab.example.com | CHANGED | rc=0 >>
serverc.lab.example.com | FAILED | rc=1 >>
cat: /etc/motd: No such file or directorynon-zero return code
//执行copy模块
[student@workstation deploy-review]$ ansible all -m copy -a 'content="This server is managed by Ansible.\n" dest=/etc/motd'
serverc.lab.example.com | CHANGED => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/libexec/platform-python"
},
"changed": true,
"checksum": "93d304488245bb2769752b95e0180607effc69ad",
"dest": "/etc/motd",
"gid": 0,
"group": "root",
"md5sum": "af74293c7b2a783c4f87064374e9417a",
"mode": "0644",
"owner": "root",
"secontext": "system_u:object_r:etc_t:s0",
"size": 35,
"src": "/home/devops/.ansible/tmp/ansible-tmp-1604934977.5051782-193384838100256/source",
"state": "file",
"uid": 0
}
serverd.lab.example.com | CHANGED => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/libexec/platform-python"
},
"changed": true,
"checksum": "93d304488245bb2769752b95e0180607effc69ad",
"dest": "/etc/motd",
"gid": 0,
"group": "root",
"md5sum": "af74293c7b2a783c4f87064374e9417a",
"mode": "0644",
"owner": "root",
"secontext": "system_u:object_r:etc_t:s0",
"size": 35,
"src": "/home/devops/.ansible/tmp/ansible-tmp-1604934977.4949563-280624789505200/source",
"state": "file",
"uid": 0
}
servera.lab.example.com | CHANGED => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/libexec/platform-python"
},
"changed": true,
"checksum": "93d304488245bb2769752b95e0180607effc69ad",
"dest": "/etc/motd",
"gid": 0,
"group": "root",
"md5sum": "af74293c7b2a783c4f87064374e9417a",
"mode": "0644",
"owner": "root",
"secontext": "unconfined_u:object_r:etc_t:s0",
"size": 35,
"src": "/home/devops/.ansible/tmp/ansible-tmp-1604934977.484492-234194225045944/source",
"state": "file",
"uid": 0
}
serverb.lab.example.com | CHANGED => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/libexec/platform-python"
},
"changed": true,
"checksum": "93d304488245bb2769752b95e0180607effc69ad",
"dest": "/etc/motd",
"gid": 0,
"group": "root",
"md5sum": "af74293c7b2a783c4f87064374e9417a",
"mode": "0644",
"owner": "root",
"secontext": "system_u:object_r:etc_t:s0",
"size": 35,
"src": "/home/devops/.ansible/tmp/ansible-tmp-1604934977.394962-183538981503017/source",
"state": "file",
"uid": 0
}
[student@workstation deploy-review]$ ansible all -a 'cat /etc/motd'
serverb.lab.example.com | CHANGED | rc=0 >>
This server is managed by Ansible.
servera.lab.example.com | CHANGED | rc=0 >>
This server is managed by Ansible.
serverc.lab.example.com | CHANGED | rc=0 >>
This server is managed by Ansible.
serverd.lab.example.com | CHANGED | rc=0 >>
This server is managed by Ansible.
[student@workstation deploy-review]$ ansible all -m copy -a 'content="This server is managed by Ansible.\n" dest=/etc/motd'
serverb.lab.example.com | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/libexec/platform-python"
},
"changed": false,
"checksum": "93d304488245bb2769752b95e0180607effc69ad",
"dest": "/etc/motd",
"gid": 0,
"group": "root",
"mode": "0644",
"owner": "root",
"path": "/etc/motd",
"secontext": "system_u:object_r:etc_t:s0",
"size": 35,
"state": "file",
"uid": 0
}
serverc.lab.example.com | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/libexec/platform-python"
},
"changed": false,
"checksum": "93d304488245bb2769752b95e0180607effc69ad",
"dest": "/etc/motd",
"gid": 0,
"group": "root",
"mode": "0644",
"owner": "root",
"path": "/etc/motd",
"secontext": "system_u:object_r:etc_t:s0",
"size": 35,
"state": "file",
"uid": 0
}
servera.lab.example.com | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/libexec/platform-python"
},
"changed": false,
"checksum": "93d304488245bb2769752b95e0180607effc69ad",
"dest": "/etc/motd",
"gid": 0,
"group": "root",
"mode": "0644",
"owner": "root",
"path": "/etc/motd",
"secontext": "unconfined_u:object_r:etc_t:s0",
"size": 35,
"state": "file",
"uid": 0
}
serverd.lab.example.com | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/libexec/platform-python"
},
"changed": false,
"checksum": "93d304488245bb2769752b95e0180607effc69ad",
"dest": "/etc/motd",
"gid": 0,
"group": "root",
"mode": "0644",
"owner": "root",
"path": "/etc/motd",
"secontext": "system_u:object_r:etc_t:s0",
"size": 35,
"state": "file",
"uid": 0
}
//结束练习
[student@workstation deploy-review]$ lab deploy-review grade
Grading the student's work on workstation:
· Verify active configuration file............................ PASS
· Verify servera /etc/motd.................................... PASS
· Verify serverb /etc/motd.................................... PASS
· Verify serverc /etc/motd.................................... PASS
· Verify serverd /etc/motd.................................... PASS
Overall lab grade.............................................. PASS
[student@workstation deploy-review]$ lab deploy-review finish
Cleaning up the lab on workstation:
· Restore /etc/motd........................................... SUCCESS