Rumah > Tutorial sistem > LINUX > teks badan

Ringkasan penggunaan ansible: pemasangan ansible

WBOY
Lepaskan: 2024-08-24 07:31:14
asal
694 orang telah melayarinya

Ringkasan penggunaan ansible: pemasangan ansible

1 Ansible ialah alat pengurusan konfigurasi dan penggunaan aplikasi, fungsinya serupa dengan alatan pengurusan konfigurasi industri semasa Chef, Puppet dan Saltstack. Ansible dibangunkan menggunakan bahasa Python. Platform Ansible telah dicipta oleh Michael DeHaan, pengarang perisian terkenal Cobbler and Func. Versi pertama Ansible telah dikeluarkan pada Februari 2012. Ansible menguruskan mesin melalui protokol SSH secara lalai, jadi Ansible tidak perlu memasang program klien pada pelayan. Anda hanya perlu memasang Ansible pada satu pelayan Selepas Ansible dipasang, anda boleh mengurus dan mengawal pelayan lain. Tidak perlu mengkonfigurasi pangkalan data untuknya, dan Ansible tidak bermula atau terus berjalan sebagai daemon. Ansible boleh mencapai matlamat berikut:

Penyerahan aplikasi secara automatik
  • Konfigurasi pengurusan automatik
  • Penghantaran berterusan automatik
  • Pengurusan perkhidmatan awan automatik (AWS).
  • Menurut maklumat rasmi yang diberikan oleh Ansible, pengguna yang sedang menggunakan Ansible termasuk: evernote, rackspace, NASA, Atlassian, twitter, dll.

Nota: Pengenalan di atas datang daripada pengenalan ibm developerworks China.

2. Pemasangan yang boleh dipercayai
1. Pemasangan sumber Yum Ambil centos sebagai contoh Ansible tidak disertakan dalam sumber secara lalai, tetapi terdapat ansible dalam sumber epel fedora Selepas mengkonfigurasi sumber epel, anda boleh memasangnya terus melalui yum. Berikut ialah centos6.8 sebagai contoh:
# yum install http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum install ansible
Salin selepas log masuk

2. pemasangan apt-get Dalam ubuntu dan derivatifnya, anda boleh memasang apt-get dengan menambahkan sumber ppa, seperti berikut:
$ sudo apt-get install software-properties-common
$ sudo apt-add-repository ppa:ansible/ansible
$ sudo apt-get update
$ sudo apt-get install ansible
Salin selepas log masuk

3. Pemasangan kod sumber

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
Salin selepas log masuk

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'
Salin selepas log masuk

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'
Salin selepas log masuk

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.
Salin selepas log masuk

Penyelesaian:

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)
Salin selepas log masuk

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
Salin selepas log masuk

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
Terdapat pakej examles dalam kod sumber yang dimuat turun daripada pypi Anda boleh menggunakan fail contoh ini sebagai konfigurasi lalai, seperti berikut:
[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/
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:linuxprobe.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!