ansible自動化工具之--部署篇
ansible是新出現的自動化運維工具,基於python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程式部署、批量執行命令等功能。 ansible是基於模組工作的,本身沒有批量部署的能力。真正具有批量部署的是ansible所執行的模組,ansible只是提供一種框架。主要包括:
(1)、連線外掛程式connection plugins:負責和被監控端實現通訊;
(2)、host inventory:指定操作的主機,是乙個配置檔案裡面定義監控的主機;
(3)、各種模組核心模組、command模組、自定義模組;
(4)、借助於外掛程式完成記錄日誌郵件等功能;
(5)、playbook:劇本執行多個任務時,非必需可以讓節點一次性執行多個任務。
ansible中文學習權威**
如何安裝ansible
官網安裝ansible的幾種方式參考一下 ,接下來給大家的介紹的是通過pip的方式安裝ansible的2.3.2版本.
本次使用的是centos6.7版本作業系統,所以在安裝ansible之前需要把預設的python2.6.6版本公升級至python2.7.5版本
python公升級
安裝python2.7.5版本yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel gcc-c++
tar xf python-2.7.5.tar.gz
編譯與安裝python
cd python-2.7.5
./configure –prefix=/usr/local
make && make install
make clean
make distclean
將系統python命令指向python 2.7
mv /usr/bin/python /usr/bin/python2.6.6
ln -s /usr/local/bin/python2.7 /usr/bin/python
將yum需要執行的python指定為2.6.6
vi /usr/bin/yum
將檔案頭部的
#!/usr/bin/python
改成#!/usr/bin/python2.6.6
pip安裝ansible
更換映象源:opsx源站
根據系統版本選擇合適的源:
安裝pip: python get-pip.py
安裝ansible:
建立pip軟連線: ln -s /usr/local/bin/pip /usr/bin/pip
制定版本安裝ansible: pip install ansible==2.3.2.0
檢視ansible版本: ansible --version
ansible基本配置
ansible是輕量級的自動化批量管理工具,無需客戶端安裝agent就可以操作遠端主機,下面介紹兩種hosts配置方式,在介紹之前pip安裝的ansible是沒有配置檔案的,需要手動建立配置檔案目錄。
建立ansible目錄,預設是在/etc/目錄下
mkdir /etc/ansible
建立配置檔案
touch /etc/ansible/ansible.conf
基本配置資訊:
[defaults]
inventory = /etc/ansible/hosts
forks = 5
log_path=/var/log/ansible.log
host_key_checking = false
[accelerate]
accelerate_port = 5099
accelerate_timeout = 30
accelerate_connect_timeout = 5.0
基礎配置,根據需求自行新增配置檔案
ansible執行前的最後一次配置hosts
hosts配置引數
ansible_ssh_host #用於指定被管理的主機的真實ipansible_ssh_port #用於指定連線到被管理主機的ssh埠號,預設是22
ansible_ssh_user #ssh連線時預設使用的使用者名稱
ansible_ssh_pass #ssh連線時的密碼
ansible_sudo_pass #使用sudo連線使用者時的密碼
ansible_sudo_exec #如果sudo命令不在預設路徑,需要指定sudo命令路徑 ansible_ssh_private_key_file #秘鑰檔案路徑,秘鑰檔案如果不想使用ssh-agent管理時可以使用此選項
ansible_shell_type #目標系統的shell的型別,預設sh
ansible_connection #ssh 連線的型別: local , ssh , paramiko,在 ansible 1.2 之前預設是 paramiko ,後來智慧型選擇,優先使用基於 controlpersist 的 ssh (支援的前提)
ansible_python_interpreter #用來指定python直譯器的路徑,預設為/usr/bin/python 同樣可以指定ruby 、perl 的路徑
ansible_*_interpreter #其他直譯器路徑,用法和ansible_python_interpreter類似,這裡"*"可以是ruby或才perl等其他語言
hosts配置檔案可用兩種方式配置:
1、ssh
2、金鑰
本次介紹使用ssh的方式配置hosts檔案來控制主機
vim /etc/ansible/hosts
[web-202]
10.244.78.202 ansible_ssh_user=root ansible_ssh_pass=qwe`123
[web-204]
10.244.78.204 ansible_ssh_user=root ansible_ssh_pass=qwe`123
[web-206]
10.244.78.206 ansible_ssh_user=root ansible_ssh_pass=qwe`123
[webserver:children]
web-202
web-204
web-206
自動化運維ansible
sever1 172.25.60.1 server2 172.25.60.2 server3 172.25.60.3 etc ansible ansible.cfg 主配置檔案,配置ansible工作特性 etc ansible hosts 主機清單 etc ansible roles 存放角色的目...
ansible 自動化運維工具
ansible 自動化運維工具 批量管理 python開發 無客戶端 基於ssh服務 22 安裝 1.ansible包在擴充套件源,epel release yum y install epel release yum repolist 2.安裝,ansible yum y install ansi...
自動化運維ansible解析
name version capacity centos 7 3.10.0 693.el7.x86 64 1 smp tue aug 22 21 09 27 utc 2017 x86 64 x86 64 x86 64 gnu linux ansible 不需要安裝客戶端,通過sshd去通訊 基於模組...