Hech kimga sir emaski, standart sozlamalar bilan Ansible o'z ishini juda tez bajara olmaydi. Maqolada men buning bir nechta sabablarini ko'rsataman va loyihangiz tezligini oshirishi mumkin bo'lgan foydali minimal sozlamalarni taklif qilaman.
Bu erda va quyida biz yangi yaratilgan virtualenv-ga o'zingiz yoqtirgan tarzda o'rnatilgan Ansible 2.9.x-ni muhokama qilamiz.
O'rnatishdan so'ng, o'yin kitobingiz yonida "ansible.cfg" faylini yarating - bu joy sizga ushbu sozlamalarni loyiha bilan birga o'tkazish imkonini beradi va ular avtomatik ravishda yuklanadi.
Quvurlarni yotqizish
Ba'zilar quvur liniyasidan foydalanish, ya'ni modullarni maqsadli tizimning fayl tizimiga nusxalash emas, balki Base64-ga o'ralgan zip arxivini to'g'ridan-to'g'ri Python tarjimonining stdin-ga o'tkazish zarurligi haqida eshitgan bo'lishi mumkin, ammo boshqalar eshitmagan bo'lishi mumkin, lekin haqiqat haqiqat bo'lib qoladi:
pipelining = True
Faktlarni yig'ish
Standart sozlamalar bilan Ansible har bir o'yin uchun unda ishtirok etuvchi barcha xostlar uchun faktlar to'plamini boshlashini bilasizmi? Umuman olganda, agar siz bilmagan bo'lsangiz, endi bilasiz. Buning oldini olish uchun siz faktlarni to'plash uchun aniq so'rov rejimini (aniq) yoki aqlli rejimni yoqishingiz kerak. Unda faqat oldingi o'yinlarda uchramagan mezbonlardan faktlar to'planadi.
UPD. Nusxalashda siz ushbu sozlamalardan birini tanlashingiz kerak bo'ladi.
gathering = smart|explicit
Ssh ulanishlarini qayta ishlatish
Agar siz Ansible-ni disk raskadrovka rejimida ishga tushirgan bo'lsangiz ("v" varianti, birdan to'qqiz martagacha takrorlanadi), siz ssh ulanishlari doimiy ravishda amalga oshirilayotganini va uzilib qolganini payqagan bo'lishingiz mumkin. Shunday qilib, bu erda ham bir nechta nozikliklar mavjud.
Bir vaqtning o'zida ikkita darajada ssh ulanishini qayta tiklash bosqichidan qochishingiz mumkin: to'g'ridan-to'g'ri ssh mijozida va fayllarni boshqaruvchidan boshqariladigan xostga o'tkazishda.
Ochiq ssh ulanishini qayta ishlatish uchun kerakli kalitlarni ssh mijoziga o'tkazing. Keyin u quyidagilarni amalga oshirishni boshlaydi: birinchi marta ssh ulanishini o'rnatishda u qo'shimcha ravishda boshqaruv rozetkasini yaratadi, keyingi o'rnatishda esa aynan shu rozetkaning mavjudligini tekshiradi va agar muvaffaqiyatli bo'lsa, qayta ishlating. mavjud ssh ulanishi. Bularning barchasi mantiqiy bo'lishi uchun keling, faol bo'lmaganda ulanishni saqlab qolish vaqtini belgilaylik. Batafsil maqolada o'qishingiz mumkin
ssh_args = "-o ControlMaster=auto -o ControlPersist=15m"
Fayllarni boshqariladigan xostga oʻtkazishda allaqachon ochiq ssh ulanishidan qayta foydalanish uchun boshqa nomaʼlum ssh_tranfer_method sozlamasini koʻrsatish kifoya. Ushbu mavzu bo'yicha hujjatlar juda katta
transfer_method = piped
Aytgancha, "ishlab chiqish" bo'limida bu sozlama ham mavjud
Pichoqdan qo'rqma, sanchqidan qo'rq
Yana bir foydali parametr - vilkalar. U bir vaqtning o'zida xostlarga ulanadigan va vazifalarni bajaradigan ishchi jarayonlar sonini aniqlaydi. Til sifatida Pythonning o'ziga xos xususiyatlaridan kelib chiqqan holda, iplar emas, balki jarayonlar qo'llaniladi, chunki Ansible hali ham Python 2.7 ni qo'llab-quvvatlaydi - siz uchun asyncio yo'q, bu erda asinxron xatti-harakatni joriy qilishning ma'nosi yo'q! Odatiy bo'lib Ansible ishlaydi
forks = 20
Men sizni darhol ogohlantiraman, bu erda boshqaruv mashinasida mavjud xotira miqdori bilan bog'liq ba'zi qiyinchiliklar bo'lishi mumkin. Boshqacha qilib aytganda, siz, albatta, vilkalar = 100500 o'rnatishingiz mumkin, lekin bu ishlaydi deb kim aytdi?
Hammasini bir joyga qo'yish
Natijada, ansible.cfg (ini formati) uchun kerakli sozlamalar quyidagicha ko'rinishi mumkin:
[defaults]
gathering = smart|explicit
forks = 20
[ssh_connection]
pipelining = True
ssh_args = -o ControlMaster=auto -o ControlPersist=15m
transfer_method = piped
Va agar siz sog'lom odamning oddiy YaML-inventarida hamma narsani yashirishni istasangiz, u quyidagicha ko'rinishi mumkin:
---
all:
vars:
ansible_ssh_pipelining: true
ansible_ssh_transfer_method: piped
ansible_ssh_args: -o ControlMaster=auto -o ControlPersist=15m
Afsuski, bu "yig'ish = aqlli/aniq" va "vilkalar = 20" sozlamalari bilan ishlamaydi: ularning YaML ekvivalentlari mavjud emas. Yoki biz ularni ansible.cfg da o'rnatamiz yoki ANSIBLE_GATHERING va ANSIBLE_FORKS muhit o'zgaruvchilari orqali o'tkazamiz.
Mitogen haqida
- Bu Mitogen haqida qayerda? — soʻrashga haqqingiz bor, aziz oʻquvchi. Ushbu maqolaning hech bir joyida. Ammo agar siz haqiqatan ham uning kodini o'qib chiqishga tayyor bo'lsangiz va nima uchun o'yin kitobingiz Mitogen bilan ishlamay qolganini, lekin vanil Ansible bilan yaxshi ishlayotganini yoki nima uchun o'sha o'yin kitobi avval yaxshi ishlayotganini, lekin yangilanishdan keyin g'alati ishlarni qila boshlaganini tushunsangiz - yaxshi, Mitogen potentsial sizning vositangiz bo'lishi mumkin. Uni qo'llang, tushuning, maqolalar yozing - men uni qiziqish bilan o'qiyman.
Nega men shaxsan Mitogendan foydalanmayman? Chunki gladiolus vazifalari juda oddiy va hamma narsa yaxshi bo'lsagina ishlaydi. Ammo, agar siz bir oz chapga yoki o'ngga burilsangiz - biz yetib keldik: bunga javoban bir nechta noaniq istisnolar sizga uchadi va rasmni to'ldirish uchun "barchangizga rahmat" iborasi etishmayapti. , hamma bepul." Umuman olganda, men navbatdagi "er osti zarbasi" ning sabablarini aniqlash uchun vaqt sarflashni xohlamayman.
Ushbu sozlamalarning ba'zilari o'qish jarayonida aniqlangan
So'rovda faqat ro'yxatdan o'tgan foydalanuvchilar ishtirok etishlari mumkin.
Loyihalaringizni tezlashtirish uchun quyidagi Ansible sozlamalaridan qaysi biri foydalanasiz?
-
69,6%quvur liniyasi = true32
-
34,8%yig'ish = aqlli / aniq16
-
52,2%ssh_args = "-o ControlMaster=auto -o ControlPersist=..."24
-
17,4%transfer_metod = quvurli8
-
63,0%vilkalar = XXX29
-
6,5%Bularning hech biri, faqat Mitogen3
-
8,7%Mitogen + Men ushbu sozlamalardan qaysi birini qayd etaman4
46 ta foydalanuvchi ovoz berdi. 21 foydalanuvchi betaraf qoldi.
Ansible haqida ko'proq ma'lumot olishni xohlaysizmi?
-
78,3%ha, albatta 54
-
21,7%ha, men shunchaki qattiqroq narsalarni xohlayman!15
-
0,0%yo'q, va bu hech narsa uchun kerak emas0
-
0,0%yo'q, bu murakkab!!!0
69 foydalanuvchi ovoz berdi. 7 nafar foydalanuvchi betaraf qolgan.
Manba: www.habr.com