最近嘗試用 Ansible 來管理伺服器,把一堆巴拉巴拉的主機都放 Ansible 了。

作業系統: CentOS 7

首先,在ansible管理端安裝

sudo yum install ansible  

然後先在 ansible 管理端主機設定好 ssh 連線 (已經有就跳過)

ssh-keygen -t rsa  

然後在 ~/.ssh/ 目錄下,可以找到剛剛建立的公私鑰。

將 ~/.ssh/id_rsa.pub 寄送到要被管理的伺服器,透過 scp 傳送

cd ~/.ssh  
scp id_rsa.pub [email protected]:~/  

然後在這些被管的伺服器,將這個 id_rsa.pub 加入 authorized_keys

//192.168.1.22
cd ~/.ssh  
cat ../id_rsa.pub >> authorized_keys  

這樣就可以被 ansible 操作連線了。

在 ansible 管理端打開 /etc/ansible/hosts 檔案,將被管理的伺服器加入:

...
[webservers]
192.168.1.22  
...

儲存後,要在操作 ansible 前把 id_rsa 私鑰加入

ssh-agent bash  
ssh-add ~/.ssh/id_rsa  

接著,就可以測試指令

sudo ansible all -m ping