
GrĂŒĂe an alle! Mein name ist Georg. Ich arbeite fĂŒr servers.com. Ich bin gekommen, um Ihnen von Ansible zu erzĂ€hlen: von gutem Ansible und von schlechtem Ansible im Allgemeinen, dh davon, wie Menschen mit Ansible schlecht umgehen können.
ZunĂ€chst möchte ich eine Frage stellen. Wer weiĂ, worum es geht?

Das Publikum antwortet: "Hier geht es um Schmerz"
Ich habe drei HÀnde gesehen. Ich glaube nicht, dass drei Personen im Raum mit Ansible arbeiten. Anscheinend nicht das anstÀndigste Bild.

. . .
R&D , .
, , : , - - , , . , : « , ». : « , ».
. - , . , , . Ansible.

Ansible? , R&D , production . CI/CD , , , . Ansible .
Ansible. Chef. CFengine.
: « Ansible?» , .

, .
, 20 , -, . , . . ?
Ansible playbook, , . Chef - , . . , chef-. , Ansible .
, , .

, , - Ansible . , Ansible , - .
Chef , , Ansible.
, . , , Ansible , , .

, , Ansible . . , , , .
, , , . , . , , . , , , .
, Chef . - , .
Ansible . , Ansible .
, . , , , , . . , . . , , - , . Ansible .
Ansible â . , Ansible API, Ansible , , - , . Ansible , .

Ansible, . , , , .

Computer Science â .
. , , .
- .
- .
- .
- , .

Ansible. output Ansible. Ansible . â Jinja Vars, .
, side effects . , , , Ansible.
Ansible . , :

, , side effects. , , Ansible, side effect.

Ansible â Jinja, . X x. ? , , .
. .
, - , : , , . . , , .
, , , , .

, Ansible .
Ansible â , , . , - .
, Ansible.

Ansible , . . . , , , .

Ansible, - , . Ansible.
. .
, , . , , , .
Ansible "", , , - includes. , .

, Ansible. . .

:
- .
- .
- .
- , .

.

, , Ansible. , , . : « ? ». .
, Ansible, . .

. , play. . , /etc/foo .
. .

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

â . Ansible , playbook . , .
, , , .

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

â . , .
, , inventory, , .
. , â playbook, .
, , .

Ansible , , .
, Ansible. . , . , . . , , . . , , , , . .
, .
â . , .

, . Kubernetes. YAML JSON.
Jinja YAML , YAML Jinja. , JSON YAML to_nice_yaml.
, , , Jinja YAML-.
. , Ansible .

. , , . .

coupling . . . , .
Ansible coupling. , .
â .

.
, . , , . YAML-, .
1 2 , 2 , . 2, , . , , , , 2.

, 80 % Ansible, . . , , .
, . , , , - , - , - .
, , - , .
. . , , Ansible . . Playbook host. : host:
, . . inventory playbook . , .
, , playbook template, .

. . â inventory.
inventory, , . hostvars , - . , - .
? . , play.
, , Ansible. Ansible . .
, (shadowing) .
vars .
set_facts, default. Ansible , .
â , .

Ansible , . 5 , 3 playbooks, 1 inventory.
, .
, , , .
, inventory . , , . 0 changing. - , - .

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

. 200 - , includes. includes, .
, , . . . 2, : « 3», 2. , 3. , Ansible : « », : « ».
includes, import , , . , -.

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

, .
Ansible â 2 playbooks 2 Ansible. - . , .
, Ansible C
. undefine behavior, .

, , Ansible.
, .
â - Ansible. , , . - , - Ansible. : «, ». , -.
, : - Ansible; .
, , , - - , . , , Ansible. , Ansible pythonâ . , pythonâ Ansible. . Ansible â , .
, - Ansible, .
â , , . , . Ansible.
, Ansible, . . Python , , Go, Ryby, .
stderr , stdout JSON â . Ansible , , .
, , , Ansible playbook.
: , , - ; lookup- , -. Ansible -.

, , , - , -? â .
:
- Ansible, , .
- Ansible .
, , .
- Ansible , , , - .
Ansible http, , , .
, , Ansible , , , .

! . . Gartner , . Ansible , , Chef Puppet . .
. , .
CFEngine , , Ansible , . .
«» , Ansible : « ?». , , . , , , , , .
, - , - . , Ansible, . , , . , handlers, , , .
0 changes, , , , , - . . Ansible. , handler notify handler. handler when, event-, .
. Handlers - . , , , , , . Ansible .
. ? â , , âŠ
. , . , , , . Debops , - , - , . - -. -, .
, Galaxy. , , . , 2 . 15-20 2 . â Knife. , Chef â cookbooks. Knife, , , .
, , . . . .
! . Tower AWX ? - ? - ?
. , Chef - ?
. Chef. , , Chef infrastructure as code. , infrastructure, . . - - , . , D+. , , kill -9 , .
. . , , . .
, , , . defense- , . .
, . , . .
, . , , 50 , , , , 50 , , , "". 50 , , 500 , , , 1 000 . , , , .
Tower â , . Ansible jobâ Jenkins, Gitlab-CI . .
, .gitlab-ci.yml Tower.
- Ansible Red Hat. â , , .
-, , Ansible , . , -, , , .
, RBAC - playbook â production. Netflix, ssh- production-, production . , .
?
4 . 4 . , , tmp. , . . . , . - .
, , , , linter , . jobs ci .
Ansible, , Ansible Jinja. : Ansible â Python, Jinja â YAML. , . ( Ansible ) .
, Jinja. Ansible Jinja: if - true else false. Jinja. . YAML JSON. , - , YAML, , , , . : Javascript, PHP.
, Ansible , - , , ?
-, Ansible-lint â , . , , Ansible. Ansible-lint , . Ansible , , .
, , , . Ansible . . overleaf. presage, , . ., set_facts , default. , . : « ?». , Ansible , . , .
, include c set_fact, , , , . , , . Ansible , . , 2.6, 2.7, 2.8 2.9 includes, -. , .
, , , -, include- delegate. , - delegate, - . . , , . , , . , , , . 2.6, -. 2.7, 2.8, 2.9.
, . playbook. Import role vars x=1. : set_facts x=2, debug var=x. : debug var=x. . . , , , , .
, , 2, 2. , , . , , . , 1, : set_fact x=2. ? 1. , , set_fact 2. , 1, , 2. . . .
-, include- . .
. Terraform? ?
Terraform . â , , Terraform .
, Terraform state. Terraform states. n+1 provisioning. open source Terraform : «, . Git, locks, â ». .
, , , . docker. open source , .
Ansible und Terraform sind nirgendwo Konkurrenten, da Sie mit Ansible nicht das tun können, was Terraform tut, und umgekehrt. Normalerweise können Sie Server nicht intern mit Terraform konfigurieren.
Terraform ist eigentlich eine deklarative Methode zur Bestellung von Dienstleistungen. Sie nennen es Bereitstellung, aber tatsĂ€chlich stellen Sie diese Dienste entweder fĂŒr sich selbst bereit oder stellen Drittanbieter bereit. Terraform ist eine standardisierte Methode zur Bestellung von Diensten bei Drittanbietern ĂŒber eine umfangreiche Maschinenschnittstelle. Sie sind sehr nah beieinander, aber Terraform arbeitet grob gesagt, bevor Ansible kam.