Инструменты пользователя

Инструменты сайта


ansible:playbooks

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
ansible:playbooks [2023/12/12 06:07]
admin
ansible:playbooks [2024/11/21 11:01] (текущий)
admin
Строка 346: Строка 346:
  
  
 +
 +<details>
 +<summary> :!: Работа с переменными в плейбуке</summary>
 +
 +Проверка существования\\
 +Встречал вариант "**when: item is not defined**", но он очевидно не работает, проверка спокойно проходит\\
 +Хотя "is not defined" довольно распространено, оно похоже в цикле не применимо, она проверяет существование "item" а не то что в нее передаем, точно\\
 +А вариант с "in vars" работает даже с экстра переменными\\
 +<code yaml>
 +---
 +- name: "10-check_vars | Проверка переменных"
 +  ansible.builtin.fail:
 +    msg: "{{ item }} is not defined"
 +  when: item not in vars
 +  loop:
 +    - my_var1
 +    - my_var2
 +    - my_var3
 +</code>
 +
 +Развертывание словаря в шаблоне джинджи\\
 +В инвентори например такой словарь, точнее это список словарей\\
 +<code yaml>
 +my_dict_dests:
 +  - name: "dest_1"
 +    destDir: "/mytank/DEST/dest_1"
 +    transferType: "sftp"
 +    host: "10.10.10.40"
 +    user: "---"
 +    pass: "---"
 +
 +  - name: "dest_2"
 +    destDir: "/mytank/DEST/dest_2"
 +</code>
 +
 +Перечисляем все имеющиеся параметры в файле шаблона j2\\
 +т.к. фактически это список словарей, поэтому нужен вложенный цикл\\
 +<code yaml>
 +{% for dest in my_dict_dests%}
 +[[DestDir]]
 +{% for item in dest.items() %}
 +    {{ item[0] }} = "{{ item[1] }}"
 +{% endfor %}
 +{% endfor %}
 +</code>
 +
 +
 +<code yaml>
 +</code>
 +
 +</details>
  
  
  
 <details> <details>
-<summary> :!:  </summary>+<summary>:!: Плагины поиска </summary> 
 +[[https://docs.ansible.com/ansible/latest/plugins/lookup.html]]\\ 
 +[[https://github.com/morphje/ansible_pass_lookup/blob/master/README.md]]\\ 
 + 
 +Python скрипт нужно поместить в папку "lookup_plugins" в папку с ролью\\
 <code yaml> <code yaml>
 +- debug:
 +    msg: "{{ lookup('pass', 'example/test create=true length=42')}}"
  
 +- debug:
 +    msg: "{{ lookup('custom_var', 'my_variable')}}"
 </code> </code>
 </details> </details>
Строка 359: Строка 418:
  
 <details> <details>
-<summary> :!:  </summary>+<summary>:!: Поиск и перебор файлов в ОС </summary> 
 +[[https://www.dmosk.ru/miniinstruktions.php?mini=ansible-examples#files]] 
 + 
 +<code yaml> 
 +- name: "find files" 
 +  find: 
 +    path: "/my-folder/" 
 +    file_type: file 
 +    patterns: "*.yml,*.yaml" 
 +    recurse: true 
 +  register: list_files 
 + 
 +- name: "show list" 
 +  debug: 
 +    msg: "file: {{ item }}" 
 +  loop: "{{ list_files.files | map(attribute='path') | list }}" 
 +</code> 
 +</details> 
 + 
 + 
 + 
 + 
 +<details> 
 +<summary>:!:  </summary>
 <code yaml> <code yaml>
  
 </code> </code>
 </details> </details>
ansible/playbooks.1702361273.txt.gz · Последнее изменение: 2023/12/12 06:07 — admin