Ansible相對於其他自動化運維工具(saltstack、puppet)的優勢:
Ansible是一款輕量級框架,基於各個模塊實現各種功能,模塊可根據需要自行開發
agentless 無需安裝agent,可根據具體情況建立一台操作機
支持playbook劇本
python語言開發,做運維的都比較容易接受的語言
其他等等,一百度一大堆,自行百度吧~
環境說明:
系統環境centos6.8
操作機 192.168.1.121
客戶機 192.168.1.122
基本安裝
安裝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