Я рекомендую вам прочитать « Введение в playbooks », которое должно ответить на ваши вопросы, но ниже приведено резюме.
Как вы правильно заметили, дефисы являются элементами списка в YAML . Документы YAML начинаются с ---
, поэтому в начале файла есть дефисы .
Отправной точкой для любого Ansible playbook является playbook сам в файле. Сам файл playbook может содержать один или несколько так называемых « plays », каждый в качестве своего собственного элемента списка . Каждая пьеса обычно содержит партии hosts
и tasks
. Во многих playbooks есть только одна "игра", поэтому ваш типичный минимальный playbook выглядит так:
---
- hosts: webservers
tasks:
- name: Task 1
...
Как вы можете видеть выше, каждая "play" затем имеет список задач , каждый из которых начинается с дефиса. Итак, в следующем примере есть две задачи, каждая с name
и модулем (yum
и service
в данном случае):
---
- hosts: webservers
tasks:
- name: ensure apache is at the latest version
yum:
name: httpd
state: latest
- name: ensure apache is running
service:
name: httpd
state: started
Каждый модуль Ansible имеет разные аргументы, поэтому вам нужно будет проверить документацию по модулям для каждого из них, как указать эти аргументы.
Итак, правильная версия для вашего плейбука выше будет выглядеть следующим образом:
---
- connection: local
gather_facts: false
hosts: rtr
tasks:
- name: "read configs"
read_csv:
path: "{{ aws_config }}"
register: aws_requests
run_once: true
- name: "display awsconfigs requests"
debug:
msg: "{{ aws_requests.list }}"
run_once: true
- name: "set awsconfigs requests"
run_once: true
set_fact:
aws_configs: "{{ aws_requests.list }}"
- name: "build template"
template:
dest: "{{ config_filename }}"
lstrip_blocks: true
src: "{{ template }}"