You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* New translations lab4-advanced_system_process_monitoring.md (Ukrainian)
* New translations good_docs.md (Ukrainian)
* New translations 03-working-with-files.md (Ukrainian)
* New translations 04-ansible-galaxy.md (Ukrainian)
* New translations 01-presentation.md (Italian)
* New translations 02-advanced.md (Ukrainian)
* New translations 01-basic.md (Ukrainian)
* New translations 07-configurations.md (Ukrainian)
* New translations 08-snapshots.md (Ukrainian)
* New translations 09-snapshot_server.md (Ukrainian)
* New translations 10-automating.md (Ukrainian)
* New translations 30-appendix_a.md (Ukrainian)
* New translations 07_rsync_unison_use.md (Ukrainian)
* New translations 00-toc.md (Ukrainian)
* New translations 01-install.md (Ukrainian)
* New translations 02-zfs_setup.md (Ukrainian)
* New translations 03-lxdinit.md (Ukrainian)
* New translations 04-firewall.md (Ukrainian)
* New translations 05-lxd_images.md (Ukrainian)
* New translations 06-profiles.md (Ukrainian)
* New translations 01_rsync_overview.md (Ukrainian)
* New translations 02_rsync_demo01.md (Ukrainian)
* New translations 03_rsync_demo02.md (Ukrainian)
* New translations 04_rsync_configure.md (Ukrainian)
* New translations 05_rsync_authentication-free_login.md (Ukrainian)
* New translations 06_rsync_inotify.md (Ukrainian)
* New translations vale_nvchad.md (Ukrainian)
* New translations 053-load-balancer-proxies-squid.md (Ukrainian)
* New translations additional_software.md (Ukrainian)
* New translations index.md (Ukrainian)
* New translations install_nvim.md (Ukrainian)
* New translations marksman.md (Ukrainian)
* New translations nerd_fonts.md (Ukrainian)
* New translations builtin_plugins.md (Ukrainian)
* New translations nvchad_ui.md (Ukrainian)
* New translations nvimtree.md (Ukrainian)
* New translations plugins_manager.md (Ukrainian)
* New translations using_nvchad.md (Ukrainian)
* New translations index.md (Ukrainian)
* New translations md_preview.md (Ukrainian)
* New translations projectmgr.md (Ukrainian)
* New translations template_chadrc.md (Ukrainian)
* New translations htop.md (Ukrainian)
* New translations https_rsa_keygen.md (Ukrainian)
* New translations markdown-demo-v2.md (Ukrainian)
* New translations 03-application-servers.md (Ukrainian)
* New translations installing_nvidia_gpu_drivers.md (Ukrainian)
* New translations proton.md (Ukrainian)
* New translations decibels.md (Ukrainian)
* New translations file-shredder.md (Ukrainian)
* New translations flatpak.md (Ukrainian)
* New translations screenshot.md (Ukrainian)
* New translations valuta.md (Ukrainian)
* New translations docker.md (Ukrainian)
* New translations view_kernel_conf.md (Ukrainian)
* New translations rl9_network_manager.md (Ukrainian)
* New translations mtr.md (Ukrainian)
* New translations nmcli.md (Ukrainian)
* New translations nmtui.md (Ukrainian)
* New translations nosleep.md (Ukrainian)
* New translations bash_stub.md (Ukrainian)
* New translations anacron.md (Ukrainian)
* New translations cron_jobs_howto.md (Ukrainian)
* New translations cronie.md (Ukrainian)
* New translations olivetin.md (Ukrainian)
Після визначення змінну можна використовувати, викликавши її між подвійними дужками:
69
71
70
-
*`{{ port_http }}` for a simple value,
71
-
*`{{ service['rhel'] }}` or `{{ service.rhel }}` for a dictionary.
72
+
-`{{ port_http }}` for a simple value,
73
+
-`{{ service['rhel'] }}` or `{{ service.rhel }}` for a dictionary.
72
74
73
75
Наприклад:
74
76
@@ -148,15 +150,17 @@ ansible.builtin.systemd::
148
150
149
151
!!! Note "Примітка"
150
152
153
+
```
151
154
Змінна `homes.stdout_lines` — це список змінних типу string, спосіб організації змінних, з яким ми ще не стикалися.
155
+
```
152
156
153
157
Доступ до рядків, які складають збережену змінну, можна отримати за допомогою значення `stdout` (яке дозволяє виконувати такі дії, як `homes.stdout.find("core") != -1`), щоб використовувати їх за допомогою циклу (див. `loop`) або просто за їхніми індексами, як показано в попередньому прикладі.
154
158
155
159
### Вправи:
156
160
157
-
* Напишіть playbook `play-vars.yml`, який друкує назву дистрибутива цільової програми з її основною версією, використовуючи глобальні змінні.
161
+
- Напишіть playbook `play-vars.yml`, який друкує назву дистрибутива цільової програми з її основною версією, використовуючи глобальні змінні.
158
162
159
-
* Напишіть playbook, використовуючи такий словник, щоб відобразити служби, які буде встановлено:
163
+
- Напишіть playbook, використовуючи такий словник, щоб відобразити служби, які буде встановлено:
160
164
161
165
```bash
162
166
service:
@@ -170,17 +174,19 @@ service:
170
174
171
175
Типом за замовчуванням має бути "web".
172
176
173
-
* Замініть змінну `type` за допомогою командного рядка
177
+
- Замініть змінну `type` за допомогою командного рядка
174
178
175
-
* Зовнішні змінні у файлі `vars.yml`
179
+
- Зовнішні змінні у файлі `vars.yml`
176
180
177
181
## Керування циклом
178
182
179
183
За допомогою циклу ви можете повторити завдання по списку, хешу або словнику, наприклад.
180
184
181
185
!!! Note "Примітка"
182
186
187
+
```
183
188
Більше інформації можна [знайти тут](https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html).
189
+
```
184
190
185
191
Простий приклад використання, створення 4 користувачів:
186
192
@@ -267,31 +273,39 @@ users:
267
273
268
274
!!! Note "Примітка"
269
275
276
+
```
270
277
Багато чого можна робити з циклами. Ви відкриєте для себе можливості циклів, коли використання Ansible підштовхне вас використовувати їх у більш складний спосіб.
278
+
```
271
279
272
280
### Вправи:
273
281
274
-
* Відобразити вміст змінної `service` з попередньої вправи за допомогою циклу.
282
+
- Відобразити вміст змінної `service` з попередньої вправи за допомогою циклу.
275
283
276
284
!!! Note "Примітка"
277
285
286
+
````
278
287
Вам доведеться перетворити вашу змінну `service`, яка є словником, на список за допомогою фільтра jinja `list`, а саме:
279
-
288
+
280
289
```
281
290
{{ service.values() | list }}
282
291
```
292
+
````
283
293
284
294
## Умови
285
295
286
296
!!! Note "Примітка"
287
297
298
+
```
288
299
Більше інформації можна знайти [тут](https://docs.ansible.com/ansible/latest/user_guide/playbooks_conditionals.html).
300
+
```
289
301
290
302
Оператор `when` дуже корисний в багатьох випадках: невиконання певних дій на певних типах серверів, якщо файл або користувач не існує тощо.
291
303
292
304
!!! Note "Примітка"
293
305
306
+
```
294
307
За оператором `when` змінні не потребують подвійних дужок (насправді це вирази Jinja2...).
308
+
```
295
309
296
310
```bash
297
311
- name: "Reboot only Debian servers"
@@ -352,21 +366,23 @@ when: myboolean is defined and myboolean
352
366
353
367
### Вправи:
354
368
355
-
* Роздрукувати значення `service.web` лише тоді, коли `type` дорівнює `web`.
369
+
- Роздрукувати значення `service.web` лише тоді, коли `type` дорівнює `web`.
356
370
357
371
## Керування змінами: `handlers`
358
372
359
373
!!! Note "Примітка"
360
374
375
+
```
361
376
Додаткову інформацію можна [знайти тут](https://docs.ansible.com/ansible/latest/user_guide/playbooks_handlers.html).
377
+
```
362
378
363
379
Handlers дозволяють запускати операції, наприклад перезапуск служби, коли відбуваються зміни.
364
380
365
381
Модуль, будучи ідемпотентним, може виявити, що у віддаленій системі відбулася значна зміна, і таким чином запустити операцію у відповідь на цю зміну. Сповіщення надсилається в кінці блоку завдань з playbook, і операція реакції буде запущена лише один раз, навіть якщо кілька завдань надсилають одне й те саме сповіщення.
366
382
367
383

368
384
369
-
Наприклад, кілька завдань можуть вказувати на те, що службу`httpd`потрібно перезапустити через зміну її конфігураційних файлів. Але службу буде перезапущено лише один раз, щоб уникнути багаторазових непотрібних запусків.
385
+
Наприклад, кілька завдань можуть вказувати на необхідність перезапуску служби`httpd` через зміну в її конфігураційних файлах. Але службу буде перезапущено лише один раз, щоб уникнути багаторазових непотрібних запусків.
370
386
371
387
```bash
372
388
- name: template configuration file
@@ -380,8 +396,8 @@ Handlers дозволяють запускати операції, наприк
380
396
381
397
Handler — це завдання, на яке посилається унікальне глобальне ім’я:
382
398
383
-
* Він активується одним або декількома нотифікаторами.
384
-
* Він не запускається відразу, а чекає, поки всі завдання будуть виконані, щоб запуститися.
399
+
- Він активується одним або декількома нотифікаторами.
400
+
- Він не запускається відразу, а чекає, поки всі завдання будуть виконані, щоб запуститися.
385
401
386
402
Приклад handlers:
387
403
@@ -426,14 +442,16 @@ tasks:
426
442
427
443
!!! Note "Примітка"
428
444
445
+
```
429
446
Більше інформації можна знайти [тут](https://docs.ansible.com/ansible/latest/user_guide/playbooks_async.html).
447
+
```
430
448
431
449
За замовчуванням SSH-з’єднання з хостами залишаються відкритими під час виконання різноманітних завдань на всіх вузлах.
432
450
433
451
Це може спричинити деякі проблеми, зокрема:
434
452
435
-
* якщо час виконання завдання перевищує тайм-аут підключення SSH
436
-
* якщо з'єднання перервано під час дії (наприклад, перезавантаження сервера)
453
+
- якщо час виконання завдання перевищує тайм-аут підключення SSH
454
+
- якщо з'єднання перервано під час дії (наприклад, перезавантаження сервера)
437
455
438
456
У цьому випадку вам доведеться перейти в асинхронний режим і вказати максимальний час виконання, а також частоту (за замовчуванням 10 секунд), з якою ви будете перевіряти стан хоста.
439
457
@@ -466,7 +484,7 @@ tasks:
466
484
467
485
## Результати вправ
468
486
469
-
* Напишіть playbook `play-vars.yml, ', який друкує назву дистрибутива цільової програми з її основною версією, використовуючи глобальні змінні.
487
+
- Напишіть playbook \`play-vars.yml, ', який друкує назву дистрибутива цільової програми з її основною версією, використовуючи глобальні змінні.
470
488
471
489
```bash
472
490
- hosts: ansible_clients
@@ -496,7 +514,7 @@ PLAY RECAP *********************************************************************
496
514
497
515
```
498
516
499
-
* Напишіть playbook, використовуючи такий словник, щоб відобразити служби, які буде встановлено:
517
+
- Напишіть playbook, використовуючи такий словник, щоб відобразити служби, які буде встановлено:
500
518
501
519
```bash
502
520
service:
@@ -548,7 +566,7 @@ PLAY RECAP *********************************************************************
548
566
549
567
```
550
568
551
-
* Замініть змінну `type` за допомогою командного рядка:
569
+
- Замініть змінну `type` за допомогою командного рядка:
0 commit comments