1.安装和配置Ansible
按照下方所述,在控制节点workstation.lab.example.com 上安装和配置 Ansible:
安装所需的软件包
·创建名为/home/student/ansible/inventory的静态清单文件, 以满足以下需求:
servera是dev主机组的成员
serverb是test主机组的成员
serverc和serverd是prod主机组的成员
bastion是balancers主机组的成员
prod组是webservers主机组的成员
·创建名为/home/student/ansible/ansible.cfg的配置文件, 以满足以下要求:
主机清单文件为/home/student/ansible/inventory
playbook中使用的角色的位置包括/home/student/ansible/roles
因student执行命令时需要输入密码, 会导致ansible执行失败, 因此先添加sudoers规则(考试中不需要修改)
# 准备工作, 考试期间不需要做
[kiosk@foundation0 ~]$ ssh root@workstation
[root@workstation ~]# dnf install -y ansible
[root@workstation ~]# vim /etc/sudoers.d/studentstudent
ALL=(ALL) NOPASSWD: ALL
[root@workstation ~]# for i in server{a..d} bastion> do scp /etc/sudoers.d/student root@$i:/etc/sudoers.d/> done
[root@workstation ~]# su - student
# 正式操作
[student@workstation ~]$ mkdir ansible
[student@workstation ~]$ cd ansible
vim inventory
[defaults]
inventory = inventory
remote_user = student
roles_path = ./roles
host_key_checking = no
[privilege_escalation]
become = true
become_method = sudo
become_user = root
become_ask_pass = no
[student@workstation ansible]$ vim inventory
[dev]
servera
[test]
serverb
[prod]
server[c:d]
[balancers]
bastion
[webservers:children]
prod
1. 修改主机清单文件位置 inventory
2. 修改playbook角色位置 roles_path
3. 指定远程执行用户为 remote_user(考试时候是啥就指定啥)
4. 停用远程执行用户密码检测 host_key_checkin
5. 为远程用户提权:找到[privilege_escalation]把下边的四个注释去掉就行了