RHCE习题( 二 )

【RHCE习题】[student@workstation ansible]$ vim packages.yml---- name: install pkgshosts: dev, test, prodtasks:- name: install mariadb phpyum:name:- php- mariadbstate: present- name: install group pkgshosts: devtasks:- name: install Development Toolsyum:name: "@Development Tools"state: present- name: update all pkgshosts: devtasks:- name: update pkgsyum:name: '*'state: latest[student@workstation ansible]$ ansible-playbook packages.yml4、使用RHEL系统角色安装 RHEL 系统角色软件包,并创建符合以下条件的playbook /home/student/ansible/timesync.yml:在所有受管节点上运行使用 timesync 角色配置该角色,以使用当前有效的 NTP 提供商配置该角色,以使用时间服务器 classroom.example.com配置该角色,以启用 iburst 参数
解答:[student@workstation ansible]$ sudo yum -y install rhel-system-roles[student@workstation ansible]$ mkdir roles[student@workstation ansible]$ cp -r /usr/share/ansible/roles/rhel-system-roles.timesync//home/student/ansible/roles/timesync[student@workstation ansible]$ vim timesync.yml---- name: set time synchosts: allvars:timesync_ntp_servers:- hostname: classroom.example.comiburst: yesroles:- timesync[student@workstation ansible]$ ansible-playbook timesync.yml使用selinux角色配置该角色,开启所有受控节点的selinux[student@workstation ansible]$ cp -r /usr/share/ansible/roles/rhel-system-roles.selinux/home/student/ansible/roles/selinuxvim selinux.yml---- name: set selinuxhosts: allvars:selinux_state: enforcingroles:- role: selinuxbecome: true[student@workstation ansible]$ ansible-playbook selinux.yml5、使用Ansible Galaxy安装角色使用 Ansible Galaxy 和要求文件 /home/student/ansible/roles/requirements.yml,从以下 URL 下载角色并安装到 /home/student/ansible/roles:http://content.example.com/haproxy.tar.gz 此角色的名称应当为 balancerhttp://content.example.com/phpinfo.tar.gz 此角色的名称应当为 phpinfo
解答:[student@workstation ansible]$ vim roles/requirements.yml---- name: balancersrc: http://content.example.com/ansible2.8/haproxy.tar.gz- name: phpinfosrc: http://content.example.com/ansible2.8/phpinfo.tar.gz[student@workstation ansible]$ ansible-galaxy install -r /home/student/asnible/roles/requirements.yml -p /home/student/ansible/roles/6、创建和使用角色根据下列要求,在/home/student/ansible/roles中创建名为apache的角色:httpd软件包已安装,设为在系统启动时启用并启动防火墙已启用并正在运行,并使用允许访问Web服务器的规则模板文件 index.html.j2 已存在,用于创建具有以下输出的文件/var/www/html/index.html:Welcome to HOSTNAME on IPADDRESS其中,HOSTNAME是受管节点的完全限定域名 , IPADDRESS则是受管节点的IP地址 。按照下方所述,创建一个使用此角色的playbook /home/student/ansible/newrole.yml:该playbook在webservers主机组中的主机上运行
解答:[student@workstation ansible]$ cd roles/[student@workstation roles]$ ansible-galaxy init apache[student@workstation roles]$ vim http/tasks/main.yml---# tasks file for http- name: install httpd firewalldyum:name:- httpd- firewalldstate: present- name: cp filetemplate:src: index.html.j2dest: /var/www/html/index.html- name: start httpdservice:name: httpdstate: startedenabled: yes- name: restart firewalldservice:name: firewalldstate: restartedenabled: yes - name: firewalld for httpfirewalld:service: httpstate: enabledpermanent: yesimmediate: yes[student@workstation roles]$ vim http/templates/index.html.j2Welcome to {{ansible_fqdn}} on {{ansible_enp1s0.ipv4.address}} [student@workstation ansible]$ vim newrole.yml---- name: use http rolehosts: webserversroles:- apache[student@workstation ansible]$ ansible-playbook newrole.yml验证结果:[student@workstation ansible]$ curl http://servercWelcome to serverc.lab.example.com on 172.25.250.12[student@workstation ansible]$ curl http://serverdWelcome to serverd.lab.example.com on 172.25.250.137、从Ansible Galaxy使用角色根据下列要求 , 创建一个名为 /home/student/ansible/roles.yml的playbook:playbook中包含一个play,该play在balancers主机组中的主机上运行并将使用balancer角色 。此角色配置一项服务,以在webservers主机组中的主机之间平衡Web服务器请求的负载 。浏览到balancers主机组中的主机(例如http://bastion.lab.example.com/ )将生成以下输出:Welcome to serverc.example.com on 172.25.1.12重新加载浏览器将从另一Web服务器生成输出:Welcome to serverd.example.com on 172.25.1.13playbook 中包含一个 play,该 play 在 webservers主机组中的主机上运行并将使用 phpinfo 角色 。通过 URL /hello.php 浏览到 webservers 主机组中的主机将生成以下输出:Hello PHP World from FQDN其中,FQDN是主机的完全限定名称 。例如 , 浏览到 http://serverc.lab.example.com/hello.php 会生成以下输出:Hello PHP World from serverc.lab.example.com另外还有 PHP 配置的各种详细信息 , 如安装的PHP 版本等 。同样,浏览到 http://serverd.lab.example.com/hello.php 会生成以下输出:Hello PHP World from serverd.lab.example.com另外还有 PHP 配置的各种详细信息,如安装的PHP 版本等 。

推荐阅读