1. 程式人生 > >CentOS 7 原始碼離線安裝 ansible 2.7

CentOS 7 原始碼離線安裝 ansible 2.7

本文參考:RHEL 6下原始碼包安裝部署Ansible(luashin)

準備工作:
  1、下載安裝檔案,並將檔案上傳到安裝使用者的HOME目錄下

         安裝檔案 :https://download.csdn.net/download/zjyklwg/10723090
  2、配置好yum源

(1)、python2.7安裝
#python -V
Python 2.7.5
版本太老了,升級一下
yum -y install zlib*
yum -y install gcc
yum -y install unzip
yum -y install libffi-devel
yum -y install openssl-devel
yum -y install ncurses-devel
yum -y install gdbm-devel
yum -y install readline-devel
yum -y install sqlite-devel
yum -y install bzip2-devel

cd
tar xvzf Python-2.7.15.tgz
cd Python-2.7.15      
./configure --prefix=/usr/local
make
make altinstall
mv /usr/bin/python /usr/bin/python2.7.5
ln -s /usr/local/bin/python2.7 /usr/bin/python

ln -s /usr/lib64/python2.7/site-packages/selinux /usr/local/lib/python2.7/site-packages/selinux
python -V
cd /usr/local/include/python2.7
cp -a ./* /usr/local/include/

vi /usr/bin/yum
第一行改為: #!/usr/bin/python2.7.5
vi /usr/libexec/urlgrabber-ext-down
第一行改為: #!/usr/bin/python2.7.5


## 將python標頭檔案拷貝到標準目錄,以避免編譯ansible時,找不到所需的標頭檔案

(2)、setuptools模組安裝
cd
unzip -x setuptools-40.4.3.zip
cd setuptools-40.4.3
python setup.py install


(3)、pycrypto模組安裝
cd
tar xvzf pycrypto-2.6.1.tar.gz
cd pycrypto-2.6.1
python setup.py install


(4)、PyYAML模組安裝
cd
tar xvzf yaml-0.2.1.tar.gz
cd yaml-0.2.1
./configure
make
make install


cd
tar zxvf PyYAML-3.13.tar.gz
cd PyYAML-3.13
python setup.py install


(5)、Jinja2模組安裝
cd
tar xvzf MarkupSafe-1.0.tar.gz
cd MarkupSafe-1.0
python setup.py install


(*******************Jinja2 不要使用2.10,因為此版本中呼叫了python3.6版本的語法 async def)
cd
tar xvzf Jinja2-2.10.tar.gz
cd Jinja2-2.10
python setup.py install
****************************************************************************************)

cd
tar zxvf Jinja2-2.7.3.tar.gz
cd Jinja2-2.7.3
python setup.py install

 
(6)、paramiko模組安裝
cd
tar xvzf ecdsa-0.13.tar.gz
cd ecdsa-0.13
python setup.py install

cd
tar zxvf pyasn1-0.4.4.tar.gz
cd pyasn1-0.4.4
python setup.py install

cd
tar zxvf pycparser-2.19.tar.gz
cd pycparser-2.19
python setup.py install

cd
tar zxvf cffi-1.11.5.tar.gz
cd cffi-1.11.5
python setup.py install

cd
tar zxvf ipaddress-1.0.22.tar.gz
cd ipaddress-1.0.22
python setup.py install

cd
tar zxvf enum34-1.1.6.tar.gz  
cd enum34-1.1.6
python setup.py install

cd
tar zxvf six-1.11.0.tar.gz
cd six-1.11.0
python setup.py install


cd
tar zxvf PyNaCl-1.3.0.tar.gz
cd PyNaCl-1.3.0
python setup.py install
 

cd
tar zxvf asn1crypto-0.24.0.tar.gz
cd asn1crypto-0.24.0
python setup.py install


cd
tar zxvf idna-2.7.tar.gz
cd idna-2.7
python setup.py install

cd
tar zxvf cryptography-2.3.1.tar.gz
cd cryptography-2.3.1
python setup.py install

cd
tar zxvf bcrypt-3.1.4.tar.gz
cd bcrypt-3.1.4
python setup.py install

cd
tar xvzf paramiko-2.4.2.tar.gz
cd paramiko-2.4.2
python setup.py install


(7)、simplejson模組安裝
tar xvzf simplejson-3.16.0.tar.gz
cd simplejson-3.16.0
python setup.py install


(8)、ansible安裝
cd
tar xvzf ansible-2.7.0rc4.tar.gz
cd ansible-2.7.0rc4
python setup.py install

 

zabbix-api 安裝  https://github.com/gescheit/scripts/tree/master/zabbix

tar zxvf zabbix-api

cd zabbix-api

python setup.py install

(9)、SSH免金鑰登入設定,我使用的是iptables,而不是Firewalld,不過原理是一樣的,firewalld只是給iptables加了一層包裝而已。遠端伺服器指受控端。
本地機器防火牆設定
iptables -I OUTPUT 4 -p tcp -d 伺服器ip --dport 22 -j ACCEPT
iptables -I INPUT 4 -p tcp -s 伺服器ip --sport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT
service iptables save
遠端伺服器防火牆設定
iptables -I INPUT 4 -p tcp -s 本機ip --dport 22 -j ACCEPT
iptables -I OUTPUT 4 -p tcp -d 本機ip --sport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT
service iptables save

遠端伺服器管理員使用者建立
adduser centos
passwd  centos
#調整密碼有效期,過期5天后帳戶失效
passwd --maximum=15 --inactive=5 ansible
usermod -G wheel centos
visudo 編輯sudo許可權
去掉#%wheel  ALL=(ALL)       NOPASSWD: ALL,前面的"#"

本機管理員使用者建立
adduser ansible

#調整密碼有效期,過期5天后帳戶失效
passwd --maximum=15 --inactive=5 ansible
usermod -G wheel ansible
passwd ansible
初始密碼:


## 生成公鑰/私鑰
# su - ansible
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

## 到遠端服務下檢視是否上傳成功
# su - centos
# cd
# cat .ssh/authorized_keys

本地伺服器上進行登陸測試
$ ssh [email protected]

(10)生成配置檔案

vi /etc/ssh/ssh_config
修改下面的yes 為no
Host *
        GSSAPIAuthentication yes

su - ansible
$vi ~/ansible.cfg
[defaults]
log_path=/tmp/ansible.log
host_key_checking=False
inventory= /home/ansible/hosts

$ vi ~/hosts
[test]
name1 ansible_host=x.x.x.x  ansible_ssh_user=centos

測試
# ansible test -m command -a 'uptime'
## 用來測試遠端主機的執行狀態
# ansible test -m ping
參看所有的引數
ansible-doc -l

說明:配置檔案可以放在/etc/ansible目錄下面,我偷懶就直接放在ansible使用者的home目錄下了。
      如果遇到問題可以使用 ansible -vvv 或 -vvvv引數,也可以檢視/tmp/ansible.log日誌。