Ansible相對於其餘自動化運維工具(saltstack、puppet)的優點:python
Ansible是一款輕量級框架,基於各個模塊實現各類功能,模塊可根據須要自行開發web
agentless 無需安裝agent,可根據具體狀況創建一臺操做機shell
支持playbook劇本 json
python語言開發,作運維的都比較容易接受的語言centos
其餘等等,一百度一大堆,自行百度吧~服務器
環境說明:框架
系統環境centos6.8less
操做機 192.168.1.121運維
客戶機 192.168.1.122python2.7
基本安裝
安裝gcc,用於編譯python源碼
yum install gcc
更新python版本
centos自帶python2.6版本,因爲centos已對python深度依賴,因此更新python2.7就是從新再裝一個
下載:
wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz
編譯安裝:
tar zxf Python-2.7.12.tgz cd Python-2.7.12 ./configure make make install
修改python默認版本
mv /usr/bin/python /usr/bin/python2.6 ln -s /usr/local/bin/python2.7 /usr/bin/python
爲防止yum執行異常,修改yum使用的python版本
vi /usr/bin/yum
將文件頭#!/usr/bin/python修改成#!/usr/bin/python2.6
模塊安裝
setuptools
下載地址:
https://pypi.python.org/pypi/setuptools
編譯安裝
tar zxf setuptools-27.1.2.tar.gz cd setuptools-27.1.2 python setup.py install
安裝setuptools時可能會出現的錯誤
RuntimeError: Compression requires the (missing) zlib module
解決辦法:
安裝zlib
yum install zlib zlib-devel -y
安裝完成後進入python目錄
從新編譯安裝python2.7
cd Python-2.7.12 make make install
(不用刪除,直接編譯安裝,以前創建的軟鏈仍有效)
模塊安裝
安裝完成後就能夠用easy_install安裝其餘的大部分模塊了
easy_install pycrypto pyyaml jinja2 markupsafe ecdsa paramiko simplejson
使用easy_install時可能會出現的問題
error: Could not find suitable distribution for Requirement.parse('jinja2')
找不到url等等信息
解決辦法:
安裝openssl
yum install openssl openssl-devel -y
安裝完成後從新編譯安裝python2.7(同以前同樣)
安裝yaml
下載:
http://pyyaml.org/download/libyaml/yaml-0.1.7.tar.gz
編譯安裝:
tar zxf yaml-0.1.7.tar.gz cd yaml-0.1.7 ./configure make make install
安裝ansible
下載:
http://releases.ansible.com/ansible/ansible-2.1.1.0.tar.gz
tar zxf ansible cd ansible python setup.py install
或者簡單一些:
easy_install ansible pip install ansible
(這兩種方式安裝都會自動選擇適合的最新版本,推薦pip方式,能自動解決一些依賴問題,可是pip安裝的沒有ansible.cfg和hosts)
配置ansible
ssh 免密登陸
ssh-keygen -t rsa
一路回車
將~/.ssh/id_rsa.pub拷到其餘服務器,並在其餘服務器執行以下命令
cat id_rsa.pub >>~/.ssh/authorized_keys chmod 600 authorized_keys
ansible配置
mkdir -p /etc/ansible
將ansible/examples/下的ansible.cfg和hosts文件拷到/etc/ansible/
修改hosts文件
添加以下內容
[webserver] 192.168.1.122
(即webserver組下添加192.168.1.122主機,webserver組下可添加多臺主機,以後可直接對webserver組進行操做)
簡單測試
ansible webserver -m command -a'uptime'
出現綠色SECCESS字樣說明成功
-m 使用的模塊
-a 爲參數
其餘模塊
ping
setup
file
copy
command
shell
等等
可根據須要進行測試和使用更多模塊參考:ansible-doc -l