ansible 小試牛刀
環境配置
主機兩臺
- 192.168.1.141(centos7.6, 已經安裝了ansible)
- 192.168.1.142 (centos7.6, 未安裝ansible)
注:兩臺主機網絡互通(網絡問題這裏不進行介紹,每個人的環境都不一樣)
小試牛刀第一步: ansible ping模塊
執行ping命令 :
ansible 192.168.1.142 -m ping
命令格式 :
ansible <ip,主機別名,或者組名,或者all> -m ping
這個時候會報錯,我們什麼都沒有做,肯定是要報錯的,ssh 是安全通信,ansible又是五客戶端的,因此需要一定的簡單配置,這裏先把錯誤截圖展示一下:
大概意思是說,我們沒有配置清單,ansible 未能找到相應的主機,所以接下里配置第一個主機清單
小試牛刀第二步:配置主機清單
ansible的配置文件在 /etc/ansible/ 目錄下
首先,進入到ansible配置文件目錄
cd /etc/ansible/
目錄下有三個文件,如下圖:
ansible.cfg 爲ansible的配置文件,hosts文件就是我們需要配置的清單,roles爲角色配置
注:這裏不做介紹,後面的文章會有詳解。
下面編輯hosts文件,命令如下:
vim hosts
在文件中添加
[webservers]
192.168.1.142 ansible_port=22 ansible_host_user=root ansible_host_pass=dream
webservers 爲分組的名字
配置項 | 簡介 |
---|---|
ansible_port | ssh的端口 |
ansible_host_user | 登陸遠程主機使用的用戶名 |
ansible_host_pass | 登陸遠程主機使用的用戶密碼 |
注:還有其他配置項,以後的文章會做詳解
這裏雖然已經配置了遠程主機的用戶名,密碼,端口,ip,但是其實我們已經不能通過ansible遠程到目標主機,衆所周知ansible以ssh爲客戶端,ssh 連接需要配置密鑰的,此時我們訪問目標主機大概率會報出:
Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)
錯誤!(不一定就一定會報,如果兩臺主機已經建立了互信,就不會報了)
小試牛刀第三步:生成並分發ssh密鑰(在主控端生成,分發到被控端)
首先生成ssh密鑰:
ssh-keygen -t rsa
運行結果如下:
畫線的地方需要輸入三次回車鍵
紅框爲生成的密鑰路徑
然後進入ssh密碼目錄
cd /root/.ssh/
最後,拷貝 公鑰到目標主機
ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.1.142
id_rsa 爲私鑰,id_rsa.pub爲公鑰
天才第一步
再次執行ansible ping命令
ansible 192.168.1.142 -m ping
這裏已經通了,以上步驟也是ansible 服務器批量安裝部署的基礎。
ping 模塊擴展
ansible all -m ping
all 的意思是hosts主機清單的所有主機情況,當前清單裏面只有一個分組,一臺主機
ansible webservers -m ping
webservers就是上面我們配置的目錄主機分組