所需介質:
Python-2.7.8.tgz
setuptools-7.0.tar.gz
pycrypto-2.6.1.tar.gz
yaml-0.1.5.tar.gz
PyYAML-3.11.tar.gz
MarkupSafe-0.9.3.tar.gz
Jinja2-2.7.3.tar.gz
ecdsa-0.11.tar.gz
paramiko-1.15.1.tar.gz
simplejson-3.6.5.tar.gz
ansible-1.7.2.tar.gz
支持的操作系統平台及版本:
—Red HatEnterprise Linux (RHEL) 5.4
—Red HatEnterprise Linux (RHEL) 6.0
安裝操作系統:
提供Red Hat Enterprise Linux5.4(64位) / Red Hat Enterprise Linux6.0(64位)服務器,可以方便之後的Ansible安裝。安裝過程中有一些注意事項,如下:
服務器操作系統安裝采用標准類型進行配置,使用iso安裝盤鏡像文件進行Easy安裝
安裝系統缺少的rpm:
RedHat5.4:
# rpm-ivh zlib-devel-1.2.3-3.x86_64.rpm
RedHat6.0:
# rpm -ivh zlib-devel-1.2.3-25.el6.x86_64.rpm
使用root用戶登錄到服務器上,執行以下操作運行安裝腳本。
准備安裝程序及腳本:將目錄ansible文件夾及ansible.sh文件放在服務器/opt目錄下
資源鏈接:http://download.csdn.net/detail/baidu_34950407/9516310
ansible.sh腳本內容:
#!/bin/sh #因離線安裝,故將安裝所需壓縮包放在服務器/opt/ansible文件夾下(請先創建ansible文件夾) #(1)python2.7安裝 cd /opt/ansible tar xvzf Python-2.7.8.tgz cd Python-2.7.8 ./configure --prefix=/usr/local make make install # 將python頭文件拷貝到標准目錄,以避免編譯ansible時,找不到所需的頭文件 cd /usr/local/include/python2.7 cp -a ./* /usr/local/include/ # 備份舊版本的python,並符號鏈接新版本的python cd /usr/bin mv python python.old ln -s /usr/local/bin/python2.7 /usr/local/bin/python rm -f /usr/bin/python && cp /usr/local/bin/python2.7 /usr/bin/python # 修改yum腳本,使其指向舊版本的python,已避免其無法運行 sed -i 's/\/usr\/bin\/python/\/usr\/bin\/python2.4/g' /usr/bin/yum #(2)setuptools模塊安裝 cd /opt/ansible tar xvzf setuptools-7.0.tar.gz cd setuptools-7.0 python setup.py install #安裝好setuptools後就可以利用easy_install這個工具安裝下面的python模塊了,但若電腦是虛擬機,配置太低,則基本無法安裝,所以只好一個一個下載下來再安裝。 #(3)、pycrypto模塊安裝 cd /opt/ansible tar xvzf pycrypto-2.6.1.tar.gz cd pycrypto-2.6.1 python setup.py install #(4)、PyYAML模塊安裝 cd /opt/ansible tar xvzf yaml-0.1.5.tar.gz cd yaml-0.1.5 ./configure --prefix=/usr/local make --jobs=`grep processor /proc/cpuinfo | wc -l` make install #--------------------------- cd /opt/ansible tar xvzf PyYAML-3.11.tar.gz cd PyYAML-3.11 python setup.py install #(5)、Jinja2模塊安裝 cd /opt/ansible tar xvzf MarkupSafe-0.9.3.tar.gz cd MarkupSafe-0.9.3 python setup.py install #--------------------------- cd /opt/ansible tar xvzf Jinja2-2.7.3.tar.gz cd Jinja2-2.7.3 python setup.py install #(6)、paramiko模塊安裝 cd /opt/ansible tar xvzf ecdsa-0.11.tar.gz cd ecdsa-0.11 python setup.py install #--------------------------- cd /opt/ansible tar xvzf paramiko-1.15.1.tar.gz cd paramiko-1.15.1 python setup.py install #(7)、simplejson模塊安裝 cd /opt/ansible tar xvzf simplejson-3.6.5.tar.gz cd simplejson-3.6.5 python setup.py install #(8)、ansible安裝 cd /opt/ansible tar xvzf ansible-1.7.2.tar.gz cd ansible-1.7.2 python setup.py install
執行安裝:
# chmod 777 /opt/ansible.sh
#cd /opt
# ./ansible.sh
結果如下:
安裝完成
生成公鑰/私鑰
# ssh-keygen -t rsa -P ''
寫入信任文件(將/root/.ssh/id_rsa.pub分發到其他服務器,並在所有服務器上執行如下指令):
# cat /root/.ssh/id_rsa.pub >>/root/.ssh/authorized_keys
# chmod 600 /root/.ssh/authorized_keys
拷貝,生成ansible配置文件
a 配置文件/etc/ansible/ansible.cfg
# mkdir -p /etc/ansible
# cp /opt/ansible/ansible-1.7.2/examples/ansible.cfg/etc/ansible/
(注:ansible-1.7.2文件夾是ansible-1.7.2.tar.gz壓縮包解壓後生成的)
b 配置文件/etc/ansible/hosts
# vim /etc/ansible/hosts
[test] (名字可以自定義)
192.168.110.20
192.168.110.30
(說明:第一次運行時,需要輸入一下“yes”【進行公鑰驗證】,後續無需再次輸入)
沒有開啟公鑰密鑰免密碼登錄的,直接用ssh帳號和密碼也可以拷貝,生成ansible配置文件
a 配置文件/etc/ansible/ansible.cfg
#mkdir -p /etc/ansible
#cp /opt/ansible/ansible-1.7.2/examples/ansible.cfg /etc/ansible/
(注:ansible-1.7.2文件夾是ansible-1.7.2.tar.gz壓縮包解壓後生成的)
b配置文件/etc/ansible/hosts
# vi /etc/ansible/hosts
[webhosts]
172.16.10.22 ansible_ssh_user=rootansible_ssh_pass=guoting
172.16.10.33 ansible_ssh_user=rootansible_ssh_pass=guoting
解釋:
#ansible_ssh_user=root是ssh登陸用戶
#ansible_ssh_pass=guoting是ssh登陸密碼
測試拷貝,生成ansible配置文件
a配置文件/etc/ansible/ansible.cfg
#mkdir -p /etc/ansible
#cp /opt/ansible/ansible-1.7.2/examples/ansible.cfg /etc/ansible/
(注:ansible-1.7.2文件夾是ansible-1.7.2.tar.gz壓縮包解壓後生成的)
b配置文件/etc/ansible/hosts
# vi /etc/ansible/hosts
[webhosts]
192.168.100.248
例:
#echo 密碼 | ansible 192.168.100.248 -u root -m command -a 'uptime' -k
(出現“SSH password:”時,直接回車即可)