實驗背景:
Z公司爲了提升工作效率,消除重複任務,更少的錯誤風險,要求儘量減少對現網服務器的改動,因此在目前主流的運維自動化工具 中選擇Ansible來實現IT運維管理自動化。
實驗環境:
實驗內容一:
- 確認實驗環境:
瞭解服務器和主機用的操作系統,以及各個設備的ip地址
設備 |
操作系統版本 |
Ip |
與其他主機是否能ping’通 |
服務端 |
|
|
|
被管理端 |
|
|
|
- 安裝ansible(在控制端用yum方式安裝Ansible。)
CentOS (Yum)
第一步:新增 epel-release 第三方套件來源。
第二步安裝 Ansible。
3. 安裝python及ssh無密登錄
第一步:在所有節點上安裝yum、ssh、python:
控制節點:
被控制節點:
第二步:在控制節點上執行:ssh-keygen:
第三步:在控制節點上執行:
4. 修改配置文件ansible.cfg並配置被控制主機。
第一步:修改配置文件ansible.cfg
首先在管理節點上輸入:
輸入之後,會看見這樣一個界面:
接着點擊鍵盤上的i鍵進入insert模式,將下列圖中標黃的文件編輯進去
編輯完成之後保存並退出。
第二步:配置被控制主機
首先在管理節點上輸入:
輸入之後會看見默認的ansible的host文件,如下圖所示
同樣的還是輸入 i,進入insert模式編輯以下文件
因爲只用了一臺被控制節點,所以只輸入一個被控制節點的ip地址即可
保存配置文件並退出。
結果驗證:
通過輸入
來測試控制節點和被控制節點的連通性。
如圖所示,如果出現正確的相應信息,success,則證明上述操作無誤
實驗內容2 :通過ad-hoc命令批量管理服務器
任務一:測試各個遠程主機組webservers連通性。
在進行完實驗內容之後,通過輸入命令來測試控制主機和被控制主機組之間的連通性,如果出現以下success內容,則證明實驗環境良好,可繼續下列實驗。
任務二:查看遠程主機組webservers的網卡信息。
實驗解析:首先需要在被控制主機上查看被控制主機的網卡名稱是什麼,有的機器網卡名稱是eth0,有的則不是,如下圖所示,被控制主機的網卡名爲eno16777736
那麼當我們在控制主機上查看被控制主機的網卡信息時,一定要注意網卡的名稱是否對應,
圖1
我們在控制主機上輸入命令之後,就可以在控制主機上查看關於被控制主機的網卡信息,如圖1所示。
任務三:執行遠程主機腳本test.sh。
實驗解析:在控制主機上遠程控制被控制主機執行主機腳本,首先在被控制主機上有腳本,所以需要現在被控制主機上去創建腳本test.sh,如圖2,圖3所示,
圖2
創建腳本:
圖3
注意:/home/test.sh 腳本需要在遠程主機上存在且有執行權限,如圖4所示,修改權限。
圖4
在控制主機上通過輸入命令來檢查結果,如圖5所示。
圖5
任務四:主控端向目標主機拷貝test1.sh文件到/tmp/目錄下,並設置該文件所有者和所屬組爲root,文件權限爲rwxr-xr-x。
實驗解析:同樣的,主控端向目標主機拷貝test1.sh文件,首先在主控端是有這個文件的,所以需要在主控端去創建這個文件test1.sh。在此不做介紹了,上面已經解析過了。
如圖6所示
可以到目標主機上看一下是否有test1.sh的文件產生,如圖7所示,在目標主機上進入tmp目錄中,查看目錄下所有文件,可以發現test1.sh文件被成功建成。
圖7
任務五:查看遠程主機組webservers /etc/sysctl.conf文件uid, gid信息,如圖8所示
圖8
任務六:安裝httpd到所有遠程主機組webservers上。
如圖9所示
圖9
任務七:開啓遠程主機組webservers http服務,並查看服務狀態,首先啓動服務,如圖10所示
圖10
接着查看服務狀態如圖11所示
圖11
停止服務如圖12所示
圖12
任務八:在遠端服務器組webservers上創建/home/f1文件,並刪除/home/f1。
首先創建/home/f1文件,如圖13所示
圖13
在被控制主機上查看是否有/home/f1文件生成,在被控制主機上先進入home目錄在查看目錄文件有哪些,如圖14所示
圖14
接着刪除/home/f1文件,如圖15所示
圖15
結果檢驗:
在被控制主機上查看/home/f1是否還存在,如圖16所示
圖16
實驗內容三:playbook自動部署Nginx
任務一:完成playbook自動部署Nginx。
首先在控制端創建文件main.yml
在這個文件裏面輸入一下內容,如下圖所示
保存並退出。
然後執行Playbook,如下圖所示
實驗結果驗證:
首先開啓nginx,如下圖所示
接着查看nginx的服務狀態,如下圖所示,表示成功安裝了nginx。