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日誌。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章