Nota: Pengenalan di atas datang daripada pengenalan ibm developerworks China.
2. Pemasangan yang boleh dipercayai# yum install http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm # yum install ansible
$ sudo apt-get install software-properties-common $ sudo apt-add-repository ppa:ansible/ansible $ sudo apt-get update $ sudo apt-get install ansible
Pemasangan kod sumber memerlukan python2.6 atau lebih tinggi, yang bergantung pada modul paramiko, PyYAML, Jinja2, httplib2, simplejson dan pycrypto Modul di atas boleh dipasang melalui pip atau easy_install Walau bagaimanapun, memandangkan bahagian ini menyebut pemasangan kod sumber. ia terutamanya ditujukan kepada mereka yang tidak Jika anda disambungkan ke Internet, anda boleh mencari pakej di atas melalui tapak pypi, memuat turunnya dan memasangnya melalui pemasangan python setup.py.
Akhir sekali, muat turun pakej kod sumber ansible daripada github atau pypi dan pasangkannya melalui pemasangan python setup.py. Memandangkan proses pemasangan agak mudah, kami akan melangkaunya di sini dan terutamanya memperkenalkan masalah yang mungkin anda hadapi selepas pemasangan.
a. Apabila memasang PyYAML, ralat dilaporkan seperti berikut:
# python setup.py install libyaml is not found or a compiler error: forcing --without-libyaml (if libyaml is installed correctly, you may need to specify the option --include-dirs or uncomment and modify the parameter include_dirs in setup.cfg) running install_lib running install_egg_info Removing /usr/lib64/python2.6/site-packages/PyYAML-3.11-py2.6.egg-info Writing /usr/lib64/python2.6/site-packages/PyYAML-3.11-py2.6.egg-info
Dalam sistem centos6.8, ia boleh diselesaikan melalui pakej yum -y install libyaml, atau sediakan pakej dari fail ISO dan pasang melalui rpm -ivh.
b. Selepas memasang ansible, ralatnya adalah seperti berikut:
[root@361way.com ansible-1.9.1]# ansible -h Traceback (most recent call last): File "/usr/local/src/ansible-devel/bin/ansible", line 36, in from ansible.runner import Runner File "/usr/local/src/ansible-devel/lib/ansible/runner/__init__.py", line 62, in from Crypto.Random import atfork File "/usr/lib64/python2.6/site-packages/Crypto/Random/__init__.py", line 29, in from Crypto.Random import _UserFriendlyRNG File "/usr/lib64/python2.6/site-packages/Crypto/Random/_UserFriendlyRNG.py", line 38, in from Crypto.Random.Fortuna import FortunaAccumulator File "/usr/lib64/python2.6/site-packages/Crypto/Random/Fortuna/FortunaAccumulator.py", line 39, in import FortunaGenerator File "/usr/lib64/python2.6/site-packages/Crypto/Random/Fortuna/FortunaGenerator.py", line 34, in from Crypto.Util.number import ceil_shift, exact_log2, exact_div File "/usr/lib64/python2.6/site-packages/Crypto/Util/number.py", line 56, in if _fastmath is not None and not _fastmath.HAVE_DECL_MPZ_POWM_SEC: AttributeError: 'module' object has no attribute 'HAVE_DECL_MPZ_POWM_SEC'
Apabila mengimport pakej paramiko, ralat dilaporkan seperti berikut:
>>> import paramiko Traceback (most recent call last): File "", line 1, in File "/usr/lib/python2.6/site-packages/paramiko/__init__.py", line 69, in from transport import randpool, SecurityOptions, Transport File "/usr/lib/python2.6/site-packages/paramiko/transport.py", line 32, in from paramiko import util File "/usr/lib/python2.6/site-packages/paramiko/util.py", line 32, in from paramiko.common import * File "/usr/lib/python2.6/site-packages/paramiko/common.py", line 98, in from rng import StrongLockingRandomPool File "/usr/lib/python2.6/site-packages/paramiko/rng.py", line 22, in from Crypto.Util.randpool import RandomPool as _RandomPool File "/usr/lib64/python2.6/site-packages/Crypto/Util/randpool.py", line 30, in import Crypto.Random File "/usr/lib64/python2.6/site-packages/Crypto/Random/__init__.py", line 29, in from Crypto.Random import _UserFriendlyRNG File "/usr/lib64/python2.6/site-packages/Crypto/Random/_UserFriendlyRNG.py", line 38, in from Crypto.Random.Fortuna import FortunaAccumulator File "/usr/lib64/python2.6/site-packages/Crypto/Random/Fortuna/FortunaAccumulator.py", line 39, in import FortunaGenerator File "/usr/lib64/python2.6/site-packages/Crypto/Random/Fortuna/FortunaGenerator.py", line 34, in from Crypto.Util.number import ceil_shift, exact_log2, exact_div File "/usr/lib64/python2.6/site-packages/Crypto/Util/number.py", line 56, in if _fastmath is not None and not _fastmath.HAVE_DECL_MPZ_POWM_SEC: AttributeError: 'module' object has no attribute 'HAVE_DECL_MPZ_POWM_SEC'
Selepas mencari dalam talian, ia telah mengesahkan bahawa versi GMP yang bergantung pada pakej pycrypto apabila pemasangan adalah tidak betul. Butiran boleh disahkan melalui langkah berikut:
[root@361way.com pycrypto-2.6.1]# python setup.py build running build running build_py running build_ext running build_configure warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath.
Buka fail /usr/lib64/python2.6/site-packages/Crypto/Util/number.py, anda boleh melihat ulasan pada baris 56, yang memerlukan libgmp menjadi v5 atau lebih tinggi. Versi semasa sistem ialah 4.1.4 Jika anda mengulas dua baris berikut buat sementara waktu, Ansible akan dilaksanakan seperti biasa.
if _fastmath is not None and not _fastmath.HAVE_DECL_MPZ_POWM_SEC: _warn("Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsecureWarning)
Namun, kaedah ini hanyalah penyelesaian sementara Cara yang lebih baik adalah dengan menaik taraf libgmp kepada versi yang memenuhi keperluan.
c. Ralat berlaku semasa pelaksanaan
[root@361way.com src]# ansible test -m raw -a 'uptime' 10.212.52.14 | FAILED => to use the 'ssh' connection type with passwords, you must install the sshpass program 10.212.52.16 | FAILED => to use the 'ssh' connection type with passwords, you must install the sshpass program
Pasang program sshpass. Ia tidak tersedia dalam sumber lalai saya memilih untuk memuat turun dan memasangnya terus dari sumber sohu.
3. Konfigurasi dan pengesahan boleh jawab[root@361way.com ansible-1.9.1]# mkdir -p /etc/ansible [root@361way.com ansible-1.9.1]# cp -rp examples/* /etc/ansible/ [root@361way.com ansible-1.9.1]# cd /etc/ansible/
Selepas menggunakan fail konfigurasi sampel lalai, edit fail /etc/ansible/hosts untuk mengesahkan sama ada ansible tersedia melalui:
[root@361way.com ~]# cat /etc/ansible/hosts [test] 10.212.52.252 ansible_ssh_user=root ansible_ssh_pass=361way.com 10.212.52.14 ansible_ssh_user=root ansible_ssh_pass=abc123 10.212.52.16 ansible_ssh_user=root ansible_ssh_pass=91it.org
Dalam konfigurasi di atas, saya mengkonfigurasi kumpulan ujian Terdapat tiga hos dalam kumpulan ini.
Nota: Item pengguna dan kata laluan berikut adalah pilihan Apabila pengesahan kunci dikonfigurasikan, anda boleh beroperasi secara langsung tanpa menggunakan kata laluan. Jika kunci tidak digunakan, anda juga boleh menggunakan parameter -k dalam ansible untuk meminta kata laluan manual sebelum operasi.
[root@361way.com ~]# ansible test -a 'uptime' 10.212.52.252 | success | rc=0 >> 18:01pm up 21 days 3:24, 3 users, load average: 0.39, 0.38, 0.35 10.212.52.16 | success | rc=0 >> 18:09pm up 329 days 1:01, 2 users, load average: 0.08, 0.03, 0.05 10.212.52.14 | success | rc=0 >> 18:08pm up 329 days 0:23, 2 users, load average: 0.06, 0.06, 0.05
Selepas melaksanakan arahan di atas, hasilnya akan dikeluarkan, membuktikan bahawa pemasangan berjaya.
Atas ialah kandungan terperinci Ringkasan penggunaan ansible: pemasangan ansible. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!