RHCE习题( 四 )


10、修改文件内容按照下方所述,创建一个名为 /home/student/ansible/issue.yml 的 playbook:该 playbook 将在所有清单主机上运行该 playbook 会将 /etc/issue 的内容替换为下方所示的一行文本:在 dev 主机组中的主机上,这行文本显示为:Development在 test 主机组中的主机上,这行文本显示为:Test在 prod 主机组中的主机上,这行文本显示为:Production
解答:[student@workstation ansible]$ vim issue.yml---- name: modify issuehosts: alltasks:- name: input to issuecopy:content: |{% if 'dev' in group_names %}Development{% elif 'test' in group_names %}Test{% elif 'prod' in group_names %}Production{% endif %}dest: /etc/issue[student@workstation ansible]$ ansible-playbook issue.yml 验证:[root@servera ~]# cat /etc/issueDevelopment[root@serverb ~]# cat /etc/issueTest[root@serverc ~]# cat /etc/issueProduction[root@serverd ~]# cat /etc/issueProduction11、创建Web内容目录按照下方所述,创建一个名为 /home/student/ansible/webcontent.yml 的 playbook:该 playbook 在 dev 主机组中的受管节点上运行创建符合下列要求的目录 /webdev:所有者为 devops 组具有常规权限:owner=read+write+execute,group=read+write+execute,other=read+execute具有特殊权限: set group ID用符号链接将 /var/www/html/webdev 链接到 /webdev创建文件 /webdev/index.html,其中包含如下所示的单行文本:Development在 dev 主机组中主机上浏览此目录(例如 http://servera.lab.example.com/webdev/ )将生成以下输出:Development
解答:[student@workstation ansible]$ vim webcontent.yml---- name: web stationhosts: devtasks:- name: install httpd firewalldyum:name:- httpd- firewalldstate: present- name: create groupgroup:name: devopsstate: present- name: create /webdevfile:path: /webdevstate: directorygroup: devopsmode: 2775- name: cpcopy:content: Developmentdest: /webdev/index.html- name: set selinux contextsefcontext:target: /webdev(/.*)?setype: httpd_sys_content_t- name: shellshell:cmd: restorecon -Rv /webdev- name: create link to /var/www/html/webdevfile:src: /webdevdest: /var/www/html/webdevstate: link- name: restart httpdservice:name: httpdstate: restartedenabled: yes- name: restart firewalldservice:name: firewalldstate: restartedenabled: yes- name: firewall for httpfirewalld:service: httpstate: enabledpermanent: yesimmediate: yes[student@workstation ansible]$ ansible-playbook webcontent.yml 验证:[student@workstation ansible]$ curl http://servera.lab.example.com/webdev/Development12、生成硬件报告创建一个名为 /home/student/ansible/hwreport.yml的 playbook , 它将在所有受管节点上生成含有以下信息的输出文件 /root/hwreport.txt:
输出文件中的每一行含有一个 key=value 对 。您的 playbook 应当:从 http://content.example.com/hwreport.empty 下载文件,并将它保存为/root/hwreport.txt使用正确的值修改 /root/hwreport.txt如果硬件项不存在,相关的值应设为NONE
解答:[student@workstation ansible]$ vim hwreport.yml---- name: get hwreporthosts: alltasks:- name: Create report fileget_url:url: http://content.example.com/hwreport.emptydest: /root/hwreport.txt- name: get inventory_hostnamereplace:path: /root/hwreport.txtregexp: 'inventoryhostname'replace: "{{ inventory_hostname }}"- name: get memreplace:path: /root/hwreport.txtregexp: 'memory_in_MB'replace: "{{ ansible_memtotal_mb }}"- name: get biosreplace:path: /root/hwreport.txtregexp: 'BIOS_version'replace: "{{ ansible_bios_version }}"- name: get vdareplace:path: /root/hwreport.txtregexp: 'disk_vda_size'replace: "{{ ansible_devices.vda.size if ansible_devices.vda is defined else 'NONE'}}"- name: get vdbreplace:path: /root/hwreport.txtregexp: 'disk_vdb_size'replace: "{{ ansible_devices.vdb.size if ansible_devices.vdb is defined else 'NONE'}}"[student@workstation ansible]$ ansible-playbook hwreport.yml13、创建密码库按照下方所述,创建一个 Ansible 库来存储用户密码:库名称为 /home/student/ansible/locker.yml库中含有两个变量 , 名称如下:pw_developer,值为 Imadevpw_manager,值为 Imamgr用于加密和解密该库的密码为whenyouwishuponastar密码存储在文件 /home/student/ansible/secret.txt中
解答:[student@workstation ansible]$ vim locker.yml---pw_developer: lmadevpw_manager: lmamgr[student@workstation ansible]$ echo whenyouwishuponastar > secret.txt[student@workstation ansible]$ chmod 600 secret.txt[student@workstation ansible]$ ansible-vault encrypt locker.yml --vault-id=/home/student/ansible/secret.txt 14、创建用户账户从 http://content.example.com/user_list.yml 下载要创建的用户的列表 , 并将它保存到 /home/student/ansible在本次考试中使用在其他位置创建的密码库 /home/student/ansible/locker.yml,创建名为/home/student/ansible/users.yml 的playbook,从而按以下所述创建用户帐户:职位描述为 developer 的用户应当:在 dev 和 test 主机组中的受管节点上创建从 pw_developer 变量分配密码,密码有效期为30天是附加组 student 的成员职位描述为 manager 的用户应当:在 prod 主机组中的受管节点上创建从 pw_manager 变量分配密码,密码有效期为30天是附加组 opsmgr 的成员密码应采用 SHA512 哈希格式 。您的 playbook 应能够在本次考试中使用在其他位置创建的库密码文件/home/student/ansible/secret.txt 正常运行

推荐阅读