安裝和配置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
