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

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


ansible:playbooks

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
ansible:playbooks [2023/12/12 04:01]
admin
ansible:playbooks [2024/11/21 11:01] (текущий)
admin
Строка 1: Строка 1:
 ====== Разные примеры ====== ====== Разные примеры ======
 +
 +<details>
 +<summary>:!: Inventory</summary>
 +hosts.yml
 +<code yaml>
 +all:
 +  children:
 +    app_myApp:
 +      hosts:
 +        host_myApp_master:
 +          ansible_host: 10.10.40.204
 +
 +</code>
 +
 +hosts/myApp
 +<code yaml>
 +---
 +myApp_path: "/tank/secure/test_myApp/"
 +myApp_appname: "test_myApp.jar"
 +
 +</code>
 +
 +
 +group/all.yml
 +<code yaml>
 +#ansible_connection: winrm
 +#ansible_port: 5985
 +#ansible_winrm_transport: basic
 +#ansible_winrm_server_cert_validation: ignore
 +
 +ansible_connection: ssh
 +ansible_ssh_port: 22
 +
 +ansible_user: ansible
 +ansible_password: !vault |
 +  $ANSIBLE_VAULT;1.1;AES256
 +  31323664336536.......
 +
 +nexus_base_url: 'https://mysite.ru/repository'
 +nexus_username: jenkins
 +nexus_password: !vault |
 +  $ANSIBLE_VAULT;1.1;AES256
 +  3534534534......
 +
 +</code>
 +</details>
 +
  
  
Строка 299: Строка 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>
Строка 312: Строка 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.1702353691.txt.gz · Последнее изменение: 2023/12/12 04:01 — admin