安装和配置Ansible
照下方所述,在控制节点control.domainx.example.com 上安装和配置Ansible:
1.安装所需的软件包
2.创建名为/home/greg/ansible/inventory的静态清单文件,以满足一下要求:
-
node1是dev主机组的成员
-
node2是test主机组的成员
-
node3和node4是prod主机组的成员
-
node5是balancers主机组的成员
-
3.出杨建名为/home/greg/ansible/ansible.cfg的配置文件。以满足以下要求:
-
清单文件为/home/greg/ansible/inventory
-
playbook中使用的角色的位置包括/home/greg/ansible/roles
第二题-创建和运行ansible的临时命令
创建和运行Ansible临时命令
创建一个名为/home/greg/ansible/adhoc.sh的shell 脚本,该脚本将使用Ansible 临时命令在各个受管节点上安装yum存储库:
存储库1:
-
存储库的名称为EX294_BASE
-
描述为EX294 base software
-
GPG签名检查为启用状态
-
GPG秘钥URL为 http://repo.domainx.example.com/RPM-GPG-KEY-redhat-release
-
存储库为启用状态
存储库2:
-
存储库的名称为EX294_STREAM
-
描述为EX294 stream software
-
GPG签名检查为启用状态
-
GPG秘钥URL为 http://repo.domainx.example.com/RPM-GPG-KEY-redhat-release
-
存储库为启用状态
第三题-安装软件包
创建一个名为/home/greg/ansible/packages.yml 的 playbook
1.将php和mariadb软件包安装到dev、test和prod主机组中的主机上
2.RPM Development Tools 软件包组安装到 dev主机组中的主机上
3.dev主机组中主机上的所有软件包更新为最新版本
第四题-使用系统role
使用RHEL系统角色
装RHEL系统角色软件包,病创建符合以下条件的playbook /home/greg/ansible/timesync.yml:
1.在所有受管节点上运行
2.使用timesync角色
3.配置该角色,以使用当前有效的NTP提供商
4.配置该角色,以使用时间服务器172.25.254.254
5.配置该角色,以启用iburst参数
第5题-使用ansible galaxy创建role
使用Ansible Galaxy安装角色
用Ansible Galaxy 安装角色:
1.创建playbook为/home/greg/ansible/roles/requirements.yml.从以下url下载角色病安装到/home/greg/ansible/roles:
2.http://rhgis.domainx.example.com/matterials/haproxy.tar此角色的名字设置为balancer
3.http://rhgis.domainx.example.com/matterials/phpinfo.tar此角色的名字设置为phpinfo
第六题-创建一个web role
创建一个web role
根据下列要求,在/home/greg/ansible/roles 中创建名为apache的角色:
1.安装httpd包,病启动httpd服务,设置服务下次开机启动
2.启动防火墙服务,设置防护期服务下次开机启动,放行web流量
3.创建index.html.j2,该模块文件用于输出如下文件/var/www/html/index.html:
-
Welcome to HOSTNAME on IPADDRESS
-
HOSTNAME 是受管节点的FQDN,IPADDRESS 则是受管节点的IP地址
4.创建playbook /home/greg/ansible/apache.yml ,在webservers主机组使用apache的角色。
第七题-从ansible galaxy使用角色
根据下列要求,创建一个名为 /home/greg/ansible/roles.yml 的 playbook : 1.playbook 中包含一个 play, 该 play 在 balancers 主机组中的主机上运行并将使用 balancer 角色 2.此角色配置一项服务,以在 webservers 主机组中的主机之间平衡 Web 服务器请求的负载 3.览到 balancers 主机组中的主机(例如 http://node5.domainx.example.com/)将生成以下输出 Welcome to node3.domainx.example.com on 172.25.250.11 4.新加载浏览器将从另一 Web 服务器生成输出 Welcome to node4.domainx.example.com on 172.25.250.12 5.playbook 中包含一个 play, 该 play 在 webservers 主机组中的主机上运行并将使用 phpinfo 角色,通过 URL /hello.php 浏览到 webservers 主机组中的主机将生成以下输出 Hello PHP World from FQDN 其中,FQDN 是主机的完全限定名称 6.浏览到 http://node3.domainx.example.com/hello.php 会生成以下输出: Hello PHP World from node3.domainx.example.com 另外还有 PHP 配置的各种详细信息,如安装的 PHP 版本等 7.浏览到 http://node4.domainx.example.com/hello.php 会生成以下输出: Hello PHP World from node4.domainx.example.com 外还有 PHP 配置的各种详细信息,如安装的 PHP 版本等
第八题-创建和使用逻辑卷 *
创建一个叫做lv.yml的playbook,它将在所有被管理节点上执行下列任务:
-
创建逻辑卷 通过research卷组创建逻辑卷 逻辑卷的名称叫做data 逻辑卷大小是1500MB
-
格式化逻辑卷为ext4文件系统
-
如果逻辑卷不能被创建(由于大小不满足),应显示错误"Could not create logical volume of that size",然后创建800MB代替
-
如果卷组research不存在,应显示错误"Volume group does not exist"
-
不要以任何方式挂载逻辑卷
第九题-生成主机文件
1.下载http://rhgls.domainx.example.com/materials/hosts.j2到/home/greg/ansible 2.修改模板文件,让他能用来为每个inventory主机生成和/etc/hosts同样格式的文件 3.创建名为 /home/greg/ansible/hosts.yml 的 playbook ,它将使用此模板在 dev 主机组中的主机上生成文件 /etc/myhosts 4.该 playbook 运行后, dev 主机组中主机上的文件 /etc/myhosts 应针对每个受管主机包含一行内容 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 172.25.250.9 node1.domainx.example.com node1 172.25.250.10 node2.domainx.example.com node2 172.25.250.11 node3.domainx.example.com node3 172.25.250.12 node4.domainx.example.com node4 172.25.250.13 node5.domainx.example.com node5
第十题-修改文件内容
按照下方所述,创建一个名为 /home/greg/ansible/issue.yml 的 playbook
1. playbook 将在所有inventory主机上运行
2.该 playbook 会将 /etc/issue 的内容替换为下方所示的一行文本:
在 dev 主机组中的主机上,这行文本显示 为:Development
在 test 主机组中的主机上,这行文本显示 为:Test
在 prod 主机组中的主机上,这行文本显示 为:Production
第十一题-创建web内容目录
按照下方所述,创建一个名为 /home/greg/ansible/webcontent.yml 的 playbook 1.该 playbook 在 dev 主机组中的受管节点上运行 2.建符合下列要求的目录 /webdev 所有者为 webdev 组 具有常规权限:owner=rwx, group=rwx ,other=rx 有特殊权限:set gid 3.用符号链接将 /var/www/html/webdev 链接到 /webdev 4.创建文件 /webdev/index.html ,其中包含如下所示的单行文件: Development 5.在 dev 主机组中主机上浏览此目录(例如 http://node1.domainx.example.com/webdev/)将生成以下输出:Development
第十二题-生成硬件报告
1.建一个名为 /home/greg/ansible/hwreport.yml 的 playbook ,它将在所有受管节点上生成含有以下信息的输出文件 /root/hwreport.txt 清单主机名称 以 MB 表示的总内存大小 BIOS 版本 磁盘设备 vda 的大小 磁盘设备 vdb 的大小 输出文件中的每一行含有一个 key=value对 你的 playbook 应当 从 http://rhgls.domainx.example.com/materials/hwreport.empty 下载文件,并将它保存为 /root/hwreport.txt 使用正确的值改为 /root/hwreport.txt 果硬件项不存在,相关的值应设为 NONE
第十三题-使用ansible vault
1.vault的名字是locker.yml 2.vault包含两个变量 pw_developer的值是Imadev pw_manager的值是Imamgr 3.加密解密的密码为whenyouwishuponastar 4.密码存放在/home/greg/ansible/secret.txt
第十四题-批量创建用户
1.在http://rhgls.domainx.example.com/materials中下载user_list.yml到/home/greg/ansible中 2.用locker.yml变量文件,创建users.yml来创建账号 带developer描述的job的用户应该满足如下条件
在dev和test主机组下创建用户
设置密码为pw_developer变量的值
附加组为devops 带manager描述的job的用户应该满足如下条件
在prod主机组下创建用户
设置密码为pw_manager变量的值
附加组为opsmgr 3.密码应该是SHA512的格式 4.playbook应该使用vault密码文件来工作
第十五题-重新设置vault密码
1.载http://rhgls.domainx.example.com/materials/salaries.yml,保存到/home/greg/ansible/salaries.yml 2.当前的密码是insecure4sure 3.新的密码是bbe2de98389b