Rumah  >  Artikel  >  Tutorial sistem  >  Memahami seni bina yang boleh dipercayai dan prinsip kerja

Memahami seni bina yang boleh dipercayai dan prinsip kerja

PHPz
PHPzasal
2024-09-02 15:59:59727semak imbas

Ansible ialah pengurus konfigurasi dipacu model yang menyokong penerbitan berbilang nod dan pelaksanaan tugas jauh. Secara lalai, SSH digunakan untuk sambungan jauh. Tidak perlu memasang perisian tambahan pada nod terurus dan ia boleh dilanjutkan menggunakan pelbagai bahasa pengaturcaraan.

1. Seni bina asas Ansible

Memahami seni bina yang boleh dipercayai dan prinsip kerja

Gambar di atas menunjukkan seni bina asas ansible Daripada gambar di atas, anda boleh memahami bahawa ia terdiri daripada bahagian berikut:

  • Teras: ansible
  • Modul Teras: Ini adalah modul yang disertakan dengan ansible
  • Modul sambungan (Modul Tersuai): Jika modul teras tidak mencukupi untuk melengkapkan fungsi tertentu, anda boleh menambah modul sambungan
  • Pemalam: Lengkapkan pelengkap fungsi modul
  • Playbooks: Fail konfigurasi tugas Ansible, yang mentakrifkan berbilang tugasan dalam playbook dan dilaksanakan secara automatik oleh ansible
  • Pemalam Penyambung: ansible menyambung ke setiap hos berdasarkan pemalam sambungan Walaupun ansible menggunakan ssh untuk menyambung ke setiap hos, ia juga menyokong kaedah sambungan lain, jadi pemalam sambungan diperlukan
  • .
  • Inventori Hos: Tentukan hos yang diuruskan oleh ansible
2. Prinsip kerja ansible

Memahami seni bina yang boleh dipercayai dan prinsip kerja Memahami seni bina yang boleh dipercayai dan prinsip kerja

Di atas ialah dua rajah prinsip kerja boleh didapati di Internet Kedua-dua rajah pada asasnya adalah pengembangan berdasarkan rajah seni bina. Anda boleh faham dari gambar di atas:

1. Terminal pengurusan menyokong tiga cara untuk menyambung ke terminal terurus: setempat, ssh dan zeromq lalai adalah menggunakan sambungan berasaskan ssh---bahagian ini sepadan dengan modul sambungan dalam rajah seni bina asas. ;

2. Inventori Hos (kumpulan hos) boleh dikelaskan mengikut jenis aplikasi, dsb. Nod pengurusan melaksanakan operasi yang sepadan melalui pelbagai modul - satu modul, pelaksanaan kumpulan bagi satu arahan, kita boleh memanggilnya ad-hoc ;

3. Nod pengurusan boleh menggunakan buku main untuk melaksanakan koleksi berbilang tugas untuk melaksanakan jenis fungsi, seperti pemasangan dan penggunaan perkhidmatan web, sandaran kelompok pelayan pangkalan data, dsb. Kami hanya boleh memahami buku main sebagai fail konfigurasi yang sistem kendalikan dengan menggabungkan berbilang operasi ad-hoc.

3. Tujuh perintah ansible

Selepas memasang ansible, kami mendapati bahawa ansible memberikan kami tujuh arahan secara keseluruhan: ansible, ansible-doc, ansible-galaxy, ansible-lint, ansible-playbook, ansible-pull, ansible-vault. Di sini kita hanya melihat bahagian penggunaan, dan bahagian terperinci boleh diperolehi melalui kaedah "command -h".

1. boleh
1.[root@localhost ~]# ansible -h
2.Usage: ansible  [options]

Ansible ialah bahagian teras perintah, yang digunakan terutamanya untuk melaksanakan perintah ad-hoc, iaitu, satu arahan. Secara lalai, bahagian hos dan pilihan perlu diikuti Apabila modul tidak ditentukan secara lalai, modul arahan digunakan. Seperti:

1.[root@361way.com ~]# ansible 192.168.0.102 -a 'date'
2192.168.0.102 | success | rc=0 >>
3Tue May 12 22:57:24 CST 2015

Walau bagaimanapun, modul lalai boleh diubah suai dalam ansible.cfg. Parameter di bawah arahan ansible dijelaskan seperti berikut:

  1. Parameter:
  2. -a 'Arguments', --args='Arguments' parameter baris arahan
  3. -m NAME, --module-name=NAME Nama modul pelaksanaan Modul arahan digunakan secara lalai, jadi jika anda hanya melaksanakan satu arahan, anda tidak memerlukan parameter -m
  4. -i PATH, --inventory=PATH menentukan laluan ke fail hos inventori, lalainya ialah /etc/ansible/hosts.
  5. -u Nama pengguna, --user=Pengguna pelaksanaan nama pengguna, gunakan nama pengguna jauh ini dan bukannya pengguna semasa
  6. -U --sud-user=SUDO_User Pengguna mana yang hendak sudo, lalainya ialah root
  7. -k --ask-pass kata laluan log masuk, gesa untuk kata laluan SSH dan bukannya mengandaikan pengesahan berasaskan kunci
  8. -K --ask-sudo-pass gesaan untuk penggunaan kata laluan sudo
  9. -s --sudo sudo run
  10. -S --su Gunakan arahan su
  11. -l --list memaparkan semua modul yang disokong
  12. -s --snippet menentukan modul untuk memaparkan coretan skrip
  13. -f --forks=NUM Bilangan tugasan selari. NUM ditentukan sebagai integer, lalainya ialah 5. #ansible testhosts -a "/sbin/reboot" -f 10 Mulakan semula semua mesin dalam kumpulan testhosts, 10 mesin pada satu masa
  14. --private-key=PRIVATE_KEY_FILE laluan kunci peribadi, gunakan fail ini untuk mengesahkan sambungan
  15. -v --butiran kasar
  16. semua laksanakan
  17. untuk semua hos yang ditakrifkan oleh hos
  18. -M MODULE_PATH, --module-path=MODULE_PATH Laluan modul yang akan dilaksanakan, lalainya ialah /usr/share/ansible/
  19. --list-hosts hanya mencetak hos mana yang akan melaksanakan fail playbook ini, sebenarnya tidak melaksanakan fail playbook
  20. -o --output mampat satu baris, keluaran ringkasan Cuba keluarkan semuanya pada satu baris.
  21. -t Direktori, --tree=Direktori Simpan kandungan dalam direktori output ini, menyimpan keputusan dalam fail pada setiap hos.
  22. -Tamat masa larian latar belakang B
  23. -P Siasat masa program latar belakang
  24. -T Saat, --masa tamat=Masa saat dalam saat
  25. -P NUM, --poll=NUM Poll background berfungsi setiap beberapa saat. Diperlukan - b
  26. -c Sambungan, --connection=Jenis sambungan sambungan untuk digunakan. Pilihan yang mungkin adalah paramiko(SSH), SSH dan tempatan. Tempatan digunakan terutamanya untuk crontab atau permulaan.
  27. --tags=TAGS Hanya laksanakan tugasan dengan tag yang ditentukan Contoh: ansible-playbook test.yml --tags=copy Hanya laksanakan tugasan dengan salinan tag
  28. --list-hosts hanya mencetak hos mana yang akan melaksanakan fail playbook ini, sebenarnya tidak melaksanakan fail playbook
  29. --list-tasks Senaraikan semua tugasan yang akan dilaksanakan
  30. -C, --semak hanya menguji perkara yang akan diubah dan tidak akan melaksanakannya sebaliknya, ia cuba meramalkan beberapa kemungkinan perubahan
  31. --syntax-check Lakukan semakan sintaks skrip, tetapi jangan laksanakan
  32. -l SUBSET, --limit=SUBSET hadkan lagi mod hos/kumpulan yang dipilih --limit=192.168.0.15 Hanya laksanakan ip ini
  33. --skip-tags=SKIP_TAGS Hanya jalankan mainan dan tugasan dengan tag yang tidak sepadan dengan nilai ini --skip-tags=copy_start
  34. -e EXTRA_VARS, --extra-vars=EXTRA_VARS Pembolehubah tambahan ditetapkan sebagai kunci=nilai atau YAML/JSON
  35. #cat update.yml
  36. ---
  37. - hos: {{ hos }}
  38. remote_user: {{ pengguna }}
  39. ............
  40. #ansible-playbook update.yml --extra-vars "hosts=vipers user=admin" Lulus pembolehubah {{hosts}}, {{user}}, hos boleh menjadi ip atau nama kumpulan
  41. -l,--had Laksanakan tugas pada hos/kumpulan yang ditentukan--limit=192.168.0.10, 192.168.0.11 atau -l 192.168.0.10, 192.168.0.11 Laksanakan 2 tugasan ini sahaja >
2. ansible-doc
# ansible-doc -h
Usage: ansible-doc [options] [module...]

该指令用于查看模块信息,常用参数有两个-l 和 -s ,具体如下:

  1. //列出所有已安装的模块
  2. # ansible-doc -l
  3. //查看具体某模块的用法,这里如查看command模块
  4. # ansible-doc -s command
3、ansible-galaxy
# ansible-galaxy -h
Usage: ansible-galaxy [init|info|install|list|remove] [--help] [options] ...

ansible-galaxy 指令用于方便的从https://galaxy.ansible.com/ 站点下载第三方扩展模块,我们可以形象的理解其类似于centos下的yum、python下的pip或easy_install 。如下示例:

[root@localhost ~]# ansible-galaxy install aeriscloud.docker
- downloading role 'docker', owned by aeriscloud
- downloading role from https://github.com/AerisCloud/ansible-docker/archive/v1.0.0.tar.gz
- extracting aeriscloud.docker to /etc/ansible/roles/aeriscloud.docker
- aeriscloud.docker was installed successfully

这个安装了一个aeriscloud.docker组件,前面aeriscloud是galaxy上创建该模块的用户名,后面对应的是其模块。在实际应用中也可以指定txt或yml 文件进行多个组件的下载安装。这部分可以参看官方文档。

4、ansible-lint

ansible-lint是对playbook的语法进行检查的一个工具。用法是ansible-lint playbook.yml 。

5、ansible-playbook

该指令是使用最多的指令,其通过读取playbook 文件后,执行相应的动作,这个后面会做为一个重点来讲。

6、ansible-pull

该指令使用需要谈到ansible的另一种模式---pull 模式,这和我们平常经常用的push模式刚好相反,其适用于以下场景:你有数量巨大的机器需要配置,即使使用非常高的线程还是要花费很多时间;你要在一个没有网络连接的机器上运行Anisble,比如在启动之后安装。这部分也会单独做一节来讲。

7、ansible-vault

ansible-vault主要应用于配置文件中含有敏感信息,又不希望他能被人看到,vault可以帮你加密/解密这个配置文件,属高级用法。主要对于playbooks里比如涉及到配置密码或其他变量时,可以通过该指令加密,这样我们通过cat看到的会是一个密码串类的文件,编辑的时候需要输入事先设定的密码才能打开。这种playbook文件在执行时,需要加上 --ask-vault-pass参数,同样需要输入密码后才能正常执行。具体该部分可以参查官方博客。

注:上面七个指令,用的最多的只有两个ansible 和ansible-playbook ,这两个一定要掌握,其他五个属于拓展或高级部分。

Atas ialah kandungan terperinci Memahami seni bina yang boleh dipercayai dan prinsip kerja. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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