衆所周知知,PyCrypto的庫安裝方法以下:pip install pycrypto
python
因主機沒法聯網,形成沒法使用pip install 命令,因而選擇離線安裝pycrypto並庫。
結合ansible批量對離線主機安裝pycrypto庫shell
PyCrypto庫離線安裝包及依賴的源碼包下載連接ubuntu
$sudo apt-get install -y python-dev
bash
wget http://www.mpir.org/mpir-2.5.1.tar.bz2 wget http://ftp.gnu.org/pub/gnu/gmp/gmp-5.0.5.tar.bz2 wget https://files.pythonhosted.org/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz
使用ansible-playbook進行安裝
`ansible-playbook install.yaml #執行結果內容過長就不在下面展現了ide
install.yaml內容以下:ui
--- - hosts: ubuntu1204 remote_user: root sudo: yes sudo_user: user serial: 7 gather_facts: F tasks: - name: jianyan copy: src=/mnt/PyCrypto.tar.gz dest=/usr/local/src/ - name: jianyan shell: python /usr/local/src/install.sh
安裝腳本install.sh以下:code
#!/bin/bash cd /usr/local/src/ tar -zxvf PyCrypto.tar.gz cd /usr/local/src/PyCrypto/ bunzip2 gmp-5.0.5.tar.bz2 tar -xvf gmp-5.0.5.tar cd gmp-5.0.5/ ./configure make make check make install cd /usr/local/src/PyCrypto/ bunzip2 mpir-2.5.1.tar.bz2 tar -xvf mpir-2.5.1.tar cd mpir-2.5.1/ ./configure make make check make install cd /usr/local/src/PyCrypto/ tar -zxvf pycrypto-2.6.1.tar.gz cd pycrypto-2.6.1/ python setup.py build python setup.py install
檢驗離線安裝PyCrypto庫是否成功ip
#!/bin/bash #name = check.py try: from Crypto.Signature import PKCS1_v1_5 print "ok, install" except ImportError: print "not found"
編寫批處理py_module.yml文件rem
--- - hosts: pro_py remote_user: root serial: 7 gather_facts: F tasks: - name: show copy: src=/home/mengix/try.py dest=/usr/locar/src/try.py owner=root group=root mode=0644 - name: jianyan shell: python /usr/locar/src/try.py
批量檢驗後執行結果以下:get
$ ansible-playbook py_module.yml PLAY [pro_py] ****************************************************************** TASK [jianyan] ***************************************************************** changed: [192.168.1.73] changed: [192.168.1.4] changed: [192.168.1.6] changed: [192.168.1.7] changed: [192.168.1.69] changed: [192.168.1.72] changed: [192.168.1.66] TASK [show] ******************************************************************** ok: [192.168.1.69] => { "check.stdout": "ok, install" } ok: [192.168.1.72] => { "check.stdout": "ok, install" } ok: [192.168.1.73] => { "check.stdout": "ok, install" } ok: [192.168.1.7] => { "check.stdout": "ok, install" } ok: [192.168.1.66] => { "check.stdout": "ok, install" } ok: [192.168.1.4] => { "check.stdout": "ok, install" } ok: [192.168.1.6] => { "check.stdout": "ok, install" } PLAY RECAP ********************************************************************* 192.168.1.66 : ok=2 changed=1 unreachable=0 failed=0 192.168.1.69 : ok=2 changed=1 unreachable=0 failed=0 192.168.1.7 : ok=2 changed=1 unreachable=0 failed=0 192.168.1.72 : ok=2 changed=1 unreachable=0 failed=0 192.168.1.73 : ok=2 changed=1 unreachable=0 failed=0 192.168.1.4 : ok=2 changed=1 unreachable=0 failed=0 192.168.1.6 : ok=2 changed=1 unreachable=0 failed=0