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

CentOS 7 原始碼安裝 ansible 2.7

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

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

(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 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

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