Centos 7安裝ansible自動化運維工具

2023-03-22 06:10:52
1、介紹:

    ansible是新出現的自動化運維工具,基於Python開發,集合了眾多運維工具(puppet、SaltStack、chef、func)的優點,實現了批次系統設定、批次程式部署、批次執行命令等功能。
    本期為大家展示安裝ansible和一些基本的設定和命令使用,後期會講述具體一些模組和其他內容。

2、部署環境

作業系統版本 IP地址 主機名
Centos7.6 192.168.0.200 manage
Centos7.6 192.168.0.201 node01
Centos7.6 192.168.0.202 node02

關閉selinux和防火牆

# 關閉selinux
修改/etc/sysconfig/selinux檔案中的SELINUX=disable
sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

#關閉防火牆
systemctl stop firewalld.service
systemctl disable firewalld.service

3、安裝ansible

  • yum安裝
# 安裝依賴epel-release
yum -y install epel-release
#安裝ansible
yum -y install ansible
  • 二進位制編譯安裝
# 可以自己選擇版本
wget https://releases.ansible.com/ansible/ansible-2.9.3.tar.gz
# 解壓安裝
tar xvf ansible-2.9.3.tar.gz
mv ansible-2.9.3.tar.gz /opt/ansible
cd /opt/ansible
# 安裝依賴,pip3為python的安裝,先確認是否安裝python3
pip3 install -r requirements.txt -i https://pypi.yuna.tsinghua.edu.cn/simple/
# 建立軟連線
ln -s /usr/bin/pip3 /usr/bin/pip
# 安裝ansible
pip install --user ansible -i https://pypi.yuna.tsinghua.edu.cn/simple/
# 建立python軟連線
ln -s /usr/bin/python3 /usr/bin/python
# 建立ansible軟連線
ln -s /opt/ansible/bin/* /usr/bin
# 將組態檔複製到ansible 工作路徑下
cp /opt/ansible/examples/ansible.cfg /etc/ansible
cp /opt/ansible/examples/hosts /etc/ansible

4、ansible組態檔

  • ansible的主組態檔為/etc/ansible/ansible.cfg
inventory :管理的主機清單檔案路徑
library:ansible的模組存放的目錄
remote_tmp:上述工作原理中提到的將指令碼傳送至對端的臨時目錄
local_tmp:上述工作原理中提到本地生成指令碼存放的臨時目錄
forks:並行連線數,預設為5
sudo_user :命令執行使用者
remote_port :存取管理主機的埠        
host_key_checking:設定是否檢查SSH主機的金鑰,預設為false
timeout :ssh連線被管理主機的超時時間
log_path:ansilbe紀錄檔檔案路徑
  • ansible的主機組態檔為/etc/ansible/hosts
# 這個清單就是我們的主機清單,裡面儲存的是一些 ansible 需要連線管理的主機列表
1、直接指明主機地址或者主機名
## green.example.com
## blue.example.com
192.168.0.200
192.168.0.201
node02
# 主機地址範圍
192.168.0.[200:202]

2、定義一個主機組[組名]把地址或主機名加進去
例如mysql組
[mysqlserver]
192.168.0.201

web組
[webserver]
192.168.0.201
192.168.0.202
# 根據自己需求修改設定

5、ansbile常用命令

# 檢視ansible版本
ansible --version
# 常用於獲取模組資訊及其使用幫助
ansible-doc -l | grep mysql
# 例如查詢出mysql相關的模組資訊
# ansible命令格式如下
ansible <host-pattern> [-f forks] [-m module_name] [-a args]

6、設定伺服器間的ssh免密登入

# 在主控機上生成金鑰
ssh-keygen # 接下來一路回車即可
# 將金鑰傳給使用者端
ssh-copy-id [email protected]
ssh-copy-id [email protected]
# 期間會輸一次使用者端的登入密碼即可

/
/
/

7、使用ansible的ping模組進行驗證

# 測試兩臺客戶機網路是否連通
ansible 192.168.0.201 -m ping
# 使用分組的host主機來驗證
ansible webserver -m ping