Ansible - основы YAML

Ansible использует синтаксис YAML для выражения сценариев Ansible. В этой главе представлен обзор YAML. Ansible использует YAML, потому что людям очень легко понимать, читать и писать по сравнению с другими форматами данных, такими как XML и JSON.

Каждые YAML файл необязательно начинается с «---» и заканчивается «...».

Понимание YAML

В этом разделе мы изучим различные способы представления данных YAML.

пара "ключ-значение"

YAML использует простую пару ключ-значение для представления данных. Словарь представлен парой ключ: значение.

Note - Между: и значением должен быть пробел.

Пример: студенческая запись

--- #Optional YAML start syntax 
james: 
   name: james john 
   rollNo: 34 
   div: B 
   sex: male 
… #Optional YAML end syntax

Сокращенное название

Вы также можете использовать сокращения для обозначения словарей.

пример

James: {name: james john, rollNo: 34, div: B, sex: male}

Представляющий список

Мы также можем представить список в YAML. Каждый элемент (член) списка должен быть записан с новой строки с таким же отступом, начиная с «-» (- и пробела).

пример

---
countries:  
   - America 
   - China 
   - Canada 
   - Iceland 
…

Сокращенное название

Вы также можете использовать сокращения для представления списков.

пример

Countries: [‘America’, ‘China’, ‘Canada’, ‘Iceland’]

Список внутри словарей

Мы можем использовать список внутри словарей, т.е. значение ключа - это список.

пример

---  
james: 
   name: james john 
   rollNo: 34 
   div: B 
   sex: male 
   likes: 
      - maths 
      - physics 
      - english 
…

Список словарей

Также мы можем составить список словарей.

пример

---  
- james: 
   name: james john 
   rollNo: 34 
      div: B 
   sex: male 
   likes: 
      - maths 
      - physics 
      - english 

- robert: 
      name: robert richardson 
      rollNo: 53 
      div: B 
      sex: male 
   likes: 
      - biology 
      - chemistry 
…

YAML использует «|» для включения новых строк при отображении нескольких строк и «>» для подавления новых строк при отображении нескольких строк. Благодаря этому мы можем читать и редактировать большие строки. В обоих случаях интенденция будет проигнорирована.

Мы также можем представить Boolean(Истина / ложь) значения в YAML. гдеboolean значения могут быть нечувствительными к регистру.

пример

---  
- james: 
   name: james john 
   rollNo: 34 
   div: B 
   sex: male 
   likes: 
      - maths 
      - physics 
      - english 
   
   result: 
      maths: 87 
      chemistry: 45 
      biology: 56 
      physics: 70 
      english: 80 
   
   passed: TRUE 
   
   messageIncludeNewLines: | 
      Congratulation!! 
      You passed with 79% 
   
   messageExcludeNewLines: > 
      Congratulation!! 
      You passed with 79%

Несколько общих слов, относящихся к Ansible.

Service/Server - Процесс на машине, предоставляющей услугу.

Machine - Физический сервер, виртуальная машина (виртуальная машина) или контейнер.

Target machine - Машина, которую мы собираемся настроить с помощью Ansible.

Task - Действие (запустить, удалить) и т. Д., Управляемое Ansible.

Playbook - Файл yml, в котором записываются команды Ansible и выполняется yml на машине.