Mungkin idempoten. Alexey Sokolov







Halo! Nama saya Alexey Sokolov. Saya mewakili perusahaan mail.ru. Dan hari ini kita akan berbicara tentang Ansible.















Pertama, survei kecil. Siapa yang pernah bekerja dengan Ansible? Luar biasa, hampir semuanya. Dan ini adalah hal yang sangat terbuka. Ansible biasanya merupakan alat yang mulai digunakan orang ketika mereka pertama kali datang ke cerita DevOps.







Siapa yang meninggalkan Ansible demi alat lain? Misalnya, Salt, Chef? Mengapa?







. , Ansible. , . , , . , , .













- , . : Chef, Puppet. ? , , . , Ansible – . , – .







Ansible , . . , , . . , .







, -, , . .













. .













Ansible. . , Ansible, , .







.







, , . - , , . , , .







, , Ansible, .













. , -, , . .













? . . , , .







. , . - , - - . , .













, . . . , .







– ?







  • – . , - , .
  • , . - , - . . , .
  • , , , .
  • , , - . , . , .








, , .







  • -, , . . , . , , , , , , .
  • -, . , . , : git blame + - .








?







  • -, Ansible, - .
  • -, , , , , .
  • -, , , , , .


, , :













, Ansible, : Ansible – Shell.







Ansible , shell-. Ansible – . Ansible – , , - .













Ansible , .







  • , SSH. SSH, - Ansible’ , .
  • Ansible . Python, , .
  • . . , shell’, . .








  • , , . . , , . , - , , .
  • . , . , , .








. , - , - , .







, - . , - , - . .







, - .













: shell. . . Ansible , shell- makefile, - , . . .













shell . ? .













.







  • shell. Ansible - .
  • , , , , - .
  • , .


, Ansible , .













, ? , , ? .













? , . .













Ansible : , , . . . Ansible .













: – , – .













? , Ansible ?







  • -, , .
  • -, , . . . - , Ansible .
  • -, , . , , - , . . - , - . . .








?







. , . .







. register, . . register, , . - : « ». , , .













:







  • , Ansible .
  • .
  • .








, - . diff, , , , . .







, . ? ? -?













, . , . , .







, . , .







- . - . . - - . . Ignore_errors – .







, - , . , , . , ?













, . . .







, , , , shell: Ansible . : « , ? rm, shell- Ansible? . !»













? , . ignore_errors .













:







  • -, - . , , . - , . . . 0 - , .
  • , (. race condition). - . . , . Ignore_errors – .
  • . , - . , . , .








, ?







register. , exit code . . , . Ansible failed_when. , , , .







, . , . - . : « , ». - , , , , .













. , 124- . : « 124, ». 124, , 124, - . 124 , Ansible , .







, , , . .







. . Ansible , - . «exit 124» - ? , . .



















  • changed_when, . . , , - . , , , : changed_when: false Ansible , , .







  • , . : creates removes. , , , , -, -.







    , , : - creates , Ansible , . , .







    removes. , , .







  • , , . , stdout, stderr . – .















? . . , changed_when: false. . Ansible . : «, ».













, - . , . , , - . .







, pause. , , .







. wait_for. : «, , ». Ansible . . - . tcp, , . . . , - .







, . . , - , . , .













? . , . , Ansible. Ansible , .













. : «Pause», - . , . , , , -.













. : « , . , ».













. , exit 0. . exit 0 , . , , , . , , .







.













, - . . . , - .







, . , . , .













. - . , . , . , , .







, , , .







: failed_when: true. , . : « ». , - . , , , « ».













. , , .













-, handler.







Handler – - , . .







- playbook, . - handlers, . . . , , , . - , handlers , .







, - . , handlers . , flush_hundlers , – when: changed. - , , .







, , .













. . , – . . . , , playbook, . port, port, port, , , .







  • . , . , .
  • – .








– «». , - . , . ? Ansible . , , .













. hash_behavior. Ansible, .







, . , - , - , . , . .













, , , , . - , - . - - , - . .







. , - .













, , , , .













, , , .







, . – - , - , , . – , .







changes 0, , - , . , - , - - .







, - , - .







Ansible , . . , , .













  • . , Ansible shell, Ansible .
  • , . , .
  • , - . , - . , - , - .
  • . .








: , , . , , , .













! .













. Ansible. ? , , ?







, . . - , , , , Kubernetes. .







! ! ? , . ?







. .







, , . branch. branch – galaxy- = - .







! . : « : - YAML, Ansible-lint ?».







YAML-lint – . , , .







, – - , - . , - - , . . , , – , , , .







. , .







! - hash_behavior merge, , ? , , ?







defaults, , . . , .







. , . , , , .







- hash_behavior, - . , hash_behavior – , , .







, . ?







, .







! Ansible-? ? root Ansible-? ?







, , SystemD, sudo, - root.







! , , include_task, import_task? , , , - ? common?*







common .







includes, . , - , , , , . . - , . .







?







. .







?







. - .







, …







, . , . . ., , - , .







. ?







, , . .







?







.







! Ansible ? ? ?







Ansible-vault, .







Ansible, Ansible – , , , . - , , , .







Ansible . , , , .







. . Ansible, ? , ?







, .







! ! ? , Ansible, , 300-400-500 .







Dalam kondisi kami, tidak ada volume seperti itu. Ansible tidak mencakup seluruh infrastruktur. Digunakan dengan tepat. Dan jika Anda benar-benar membutuhkan beberapa jenis solusi berkinerja tinggi yang dirancang untuk sejumlah besar server, maka - ya, mungkin sebaiknya Anda beralih dari Ansible demi solusi terpusat lainnya yang dapat menangani semua ini dengan lebih andal. Ansible bukanlah tentang mengelola beberapa ratus, ribuan server.







PS Selain laporan ini, penulis memiliki lokakarya yang diposting di GitHub , yang mungkin berguna.








All Articles