歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> ansible離線安裝(自動化)

ansible離線安裝(自動化)

日期:2017/3/1 11:52:51   编辑:關於Linux

介質

所需介質:

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

安裝Ansible

使用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

結果如下:

\

安裝完成

Ansible SSH登錄

SSH免密鑰登錄

生成公鑰/私鑰

# 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帳號和密碼登錄

沒有開啟公鑰密鑰免密碼登錄的,直接用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 test -m command -a'uptime'

在命令行指定-k 選項輸入登錄


拷貝,生成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:”時,直接回車即可)




Copyright © Linux教程網 All Rights Reserved