Анхдагч тохиргоотой бол Ansible нь ажлаа маш хурдан хийж чадахгүй нь нууц биш юм. Нийтлэлд би үүний хэд хэдэн шалтгааныг онцолж, таны төслийн хурдыг нэмэгдүүлэх боломжтой хамгийн бага тохиргоог санал болгох болно.
Энд болон доор бид шинээр үүсгэсэн virtualenv-д таны дуртай аргаар суулгасан Ansible 2.9.x-ийн талаар ярилцана.
Суулгасны дараа тоглоомын дэвтэрийнхээ хажууд "ansible.cfg" файл үүсгэнэ үү - энэ байршил нь танд эдгээр тохиргоог төслийн хамт шилжүүлэх боломжийг олгох ба автоматаар ачаалагдах болно.
Дамжуулах хоолой
Зарим нь дамжуулах хоолойг ашиглах, өөрөөр хэлбэл зорилтот системийн файлын системд модулиудыг хуулах биш, харин Base64-д ороосон зип архивыг Python орчуулагчийн stdin руу шууд шилжүүлэх тухай сонссон байх, гэхдээ зарим нь сонсоогүй байж магадгүй, гэхдээ баримт баримт хэвээр байна:
pipelining = True
Баримт цуглуулах
Өгөгдмөл тохиргоотой бол Ansible нь жүжиг тус бүрд оролцож буй бүх хостуудын баримт цуглуулгыг эхлүүлдэг гэдгийг та мэдэх үү? Ерөнхийдөө, хэрэв та мэдэхгүй байсан бол одоо мэдэж байна. Үүнээс урьдчилан сэргийлэхийн тулд та баримт цуглуулах тодорхой хүсэлтийн горим (тодорхой) эсвэл ухаалаг горимыг идэвхжүүлэх хэрэгтэй. Үүнд зөвхөн өмнөх жүжгүүдэд тохиолдож байгаагүй хөтлөгчдөөс баримтуудыг цуглуулах болно.
UPD. Хуулбарлахдаа эдгээр тохиргооны аль нэгийг сонгох шаардлагатай болно.
gathering = smart|explicit
Ssh холболтуудыг дахин ашиглаж байна
Хэрэв та хэзээ нэгэн цагт Ansible-г дибаг хийх горимд ажиллуулж байсан бол ("v" сонголт, нэгээс есөн удаа давтагдсан) ssh холболтууд байнга хийгдэж, эвдэрч байгааг анзаарсан байх. Тиймээс, энд бас хэд хэдэн нарийн зүйл бий.
Та ssh холболтыг нэг дор хоёр түвшинд сэргээх алхамаас зайлсхийх боломжтой: ssh клиент дээр шууд болон менежерээс удирддаг хост руу файл шилжүүлэх үед.
Нээлттэй ssh холболтыг дахин ашиглахын тулд шаардлагатай түлхүүрүүдийг ssh клиент рүү дамжуулахад хангалттай. Дараа нь тэр дараахь зүйлийг хийж эхэлнэ: анх удаа ssh холболт үүсгэх үед энэ нь хяналтын залгуур гэж нэрлэгддэг залгуурыг нэмж үүсгэх бөгөөд дараагийн суулгацуудад энэ залгуур байгаа эсэхийг шалгаж, амжилттай бол дахин ашиглах болно. одоо байгаа ssh холболт. Энэ бүгдийг утга учиртай болгохын тулд идэвхгүй үед холболтоо хадгалах цагийг тохируулцгаая. Та илүү ихийг уншиж болно
ssh_args = "-o ControlMaster=auto -o ControlPersist=15m"
Удирддаг хост руу файл дамжуулахдаа аль хэдийн нээлттэй ssh холболтыг дахин ашиглахын тулд өөр үл мэдэгдэх тохиргоог ssh_tranfer_method зааж өгөхөд л хангалттай. Энэ сэдвээр баримт бичиг нь маш их юм
transfer_method = piped
Дашрамд хэлэхэд, "хөгжүүлэх" салбарт энэ тохиргоо бас байдаг
Хутгаас бүү ай, сэрээнээс ай
Өөр нэг ашигтай тохиргоо нь сэрээ юм. Энэ нь хостуудтай нэгэн зэрэг холбогдож, даалгавар гүйцэтгэх ажилчдын процессуудын тоог тодорхойлдог. Python хэлний онцлогоос шалтгаалан урсгалыг биш харин процессуудыг ашигладаг, учир нь Ansible нь Python 2.7-г дэмждэг хэвээр байна - танд асинхрон байхгүй, энд асинхрон зан үйлийг нэвтрүүлэх нь утгагүй юм! Анхдагч байдлаар Ansible ажилладаг
forks = 20
Хяналтын машин дээрх санах ойн багтаамжтай холбоотой зарим хүндрэлүүд гарч болзошгүйг би шууд анхааруулж байна. Өөрөөр хэлбэл, та мэдээж сэрээ=100500 тохируулж болно, гэхдээ энэ нь ажиллах болно гэж хэн хэлсэн бэ?
Бүгдийг нь нийлүүлж байна
Үүний үр дүнд ansible.cfg (ini формат) -д шаардлагатай тохиргоонууд дараах байдалтай байж болно.
[defaults]
gathering = smart|explicit
forks = 20
[ssh_connection]
pipelining = True
ssh_args = -o ControlMaster=auto -o ControlPersist=15m
transfer_method = piped
Хэрэв та эрүүл хүний хэвийн YaML тооллого дахь бүх зүйлийг нуухыг хүсч байвал энэ нь иймэрхүү харагдаж болно.
---
all:
vars:
ansible_ssh_pipelining: true
ansible_ssh_transfer_method: piped
ansible_ssh_args: -o ControlMaster=auto -o ControlPersist=15m
Харамсалтай нь, энэ нь "цуглуулах = ухаалаг/илэрхий" болон "салаа = 20" тохиргоонуудтай ажиллахгүй: тэдгээрийн YaML-тэй дүйцэхүйц байхгүй байна. Бид тэдгээрийг ansible.cfg-д тохируулна, эсвэл ANSIBLE_GATHERING болон ANSIBLE_FORKS орчны хувьсагчаар дамжуулна.
Митогений тухай
- Митогений тухай энэ хаана байна? - Эрхэм уншигч та асуух эрхтэй. Энэ нийтлэлд хаана ч байхгүй. Гэхдээ хэрэв та түүний кодыг уншиж, таны тоглоомын ном яагаад Mitogen-тэй гацсан, харин ваниллин Ansible-тэй сайн ажиллаж байгааг ойлгоход бэлэн байгаа бол, эсвэл яагаад ижил тоглоомын ном өмнө нь сайн ажиллаж байсан ч шинэчлэлт хийсний дараа хачирхалтай зүйл хийж эхэлснийг ойлгоход бэлэн байгаа бол - За, Митоген таны хэрэгсэл байж магадгүй. Үүнийг хэрэгжүүлэх, ойлгох, нийтлэл бичих - Би үүнийг сонирхож унших болно.
Би яагаад Митогенийг биечлэн хэрэглэж болохгүй гэж? Учир нь даалгаврууд үнэхээр энгийн, бүх зүйл зүгээр байх үед л Gladiolus ажилладаг. Гэсэн хэдий ч, хэрэв та бага зэрэг зүүн эсвэл баруун тийш эргэх юм бол бид ирлээ: хариуд нь цөөн тооны үл хамаарах зүйлүүд чам руу нисч, зургийг гүйцээхийн тулд "бүгдэнд баярлалаа" гэсэн нийтлэг хэллэг дутуу байна. , хүн бүр эрх чөлөөтэй." Ерөнхийдөө би дараагийн "газар доорх тогших" шалтгааныг олж мэдэхэд цаг үрмээргүй байна.
Эдгээр тохиргооны заримыг унших явцад илрүүлсэн
Зөвхөн бүртгэлтэй хэрэглэгчид санал асуулгад оролцох боломжтой.
Та төслүүдээ хурдасгахын тулд дараах Ansible тохиргоонуудын алийг нь ашигладаг вэ?
-
69,6%дамжуулах хоолой = үнэн32
-
34,8%цуглуулах = ухаалаг/илэрхий16
-
52,2%ssh_args = "-o ControlMaster=auto -o ControlPersist=..."24
-
17,4%дамжуулах_арга = дамжуулах8
-
63,0%сэрээ = XXX29
-
6,5%Эдгээрийн аль нь ч биш, зөвхөн Митоген3
-
8,7%Митоген + Би эдгээр тохиргооны алийг нь тэмдэглэх болно4
46 хэрэглэгч санал өгсөн. 21 хэрэглэгч түдгэлзсэн.
Ansible-ийн талаар илүү ихийг хүсч байна уу?
-
78,3%тийм ээ, мэдээж 54
-
21,7%Тийм ээ, би илүү хатуу зүйл хүсч байна!15
-
0,0%үгүй, энэ нь дэмий хэрэггүй0
-
0,0%үгүй ээ, төвөгтэй!!!0
69 хэрэглэгч санал өгсөн. 7 хэрэглэгч түдгэлзсэн.
Эх сурвалж: www.habr.com