Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
ansible:playbooks [2023/12/12 03:58] admin |
ansible:playbooks [2024/11/21 11:01] (текущий) admin |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Разные примеры ====== | ====== Разные примеры ====== | ||
+ | |||
+ | < | ||
+ | < | ||
+ | hosts.yml | ||
+ | <code yaml> | ||
+ | all: | ||
+ | children: | ||
+ | app_myApp: | ||
+ | hosts: | ||
+ | host_myApp_master: | ||
+ | ansible_host: | ||
+ | |||
+ | </ | ||
+ | |||
+ | hosts/myApp | ||
+ | <code yaml> | ||
+ | --- | ||
+ | myApp_path: "/ | ||
+ | myApp_appname: | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | group/ | ||
+ | <code yaml> | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | |||
+ | ansible_connection: | ||
+ | ansible_ssh_port: | ||
+ | |||
+ | ansible_user: | ||
+ | ansible_password: | ||
+ | $ANSIBLE_VAULT; | ||
+ | 31323664336536....... | ||
+ | |||
+ | nexus_base_url: | ||
+ | nexus_username: | ||
+ | nexus_password: | ||
+ | $ANSIBLE_VAULT; | ||
+ | 3534534534...... | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
Строка 171: | Строка 218: | ||
- block: | - block: | ||
- name: " | - name: " | ||
- | win_shell: " | + | win_shell: " |
- name: " | - name: " | ||
Строка 224: | Строка 271: | ||
- name: " | - name: " | ||
copy: | copy: | ||
- | src: ' | + | src: ' |
- | dest: '{{ " | + | dest: '{{ " |
</ | </ | ||
Строка 278: | Строка 325: | ||
- name: " | - name: " | ||
- | win_shell: " | + | win_shell: " |
register: check_pid | register: check_pid | ||
failed_when: | failed_when: | ||
Строка 295: | Строка 342: | ||
(Start-Process java -ArgumentList " | (Start-Process java -ArgumentList " | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | < | ||
+ | < | ||
+ | |||
+ | Проверка существования\\ | ||
+ | Встречал вариант " | ||
+ | Хотя "is not defined" | ||
+ | А вариант с "in vars" работает даже с экстра переменными\\ | ||
+ | <code yaml> | ||
+ | --- | ||
+ | - name: " | ||
+ | ansible.builtin.fail: | ||
+ | msg: "{{ item }} is not defined" | ||
+ | when: item not in vars | ||
+ | loop: | ||
+ | - my_var1 | ||
+ | - my_var2 | ||
+ | - my_var3 | ||
+ | </ | ||
+ | |||
+ | Развертывание словаря в шаблоне джинджи\\ | ||
+ | В инвентори например такой словарь, | ||
+ | <code yaml> | ||
+ | my_dict_dests: | ||
+ | - name: " | ||
+ | destDir: "/ | ||
+ | transferType: | ||
+ | host: " | ||
+ | user: " | ||
+ | pass: " | ||
+ | |||
+ | - name: " | ||
+ | destDir: "/ | ||
+ | </ | ||
+ | |||
+ | Перечисляем все имеющиеся параметры в файле шаблона j2\\ | ||
+ | т.к. фактически это список словарей, | ||
+ | <code yaml> | ||
+ | {% for dest in my_dict_dests%} | ||
+ | [[DestDir]] | ||
+ | {% for item in dest.items() %} | ||
+ | {{ item[0] }} = "{{ item[1] }}" | ||
+ | {% endfor %} | ||
+ | {% endfor %} | ||
+ | </ | ||
+ | |||
+ | |||
+ | <code yaml> | ||
</ | </ | ||
Строка 300: | Строка 399: | ||
+ | |||
+ | < | ||
+ | < | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | |||
+ | Python скрипт нужно поместить в папку " | ||
+ | <code yaml> | ||
+ | - debug: | ||
+ | msg: "{{ lookup(' | ||
+ | |||
+ | - debug: | ||
+ | msg: "{{ lookup(' | ||
+ | </ | ||
+ | </ | ||
< | < | ||
- | < | + | < |
+ | [[https:// | ||
<code yaml> | <code yaml> | ||
+ | - name: "find files" | ||
+ | find: | ||
+ | path: "/ | ||
+ | file_type: file | ||
+ | patterns: " | ||
+ | recurse: true | ||
+ | register: list_files | ||
+ | - name: "show list" | ||
+ | debug: | ||
+ | msg: "file: {{ item }}" | ||
+ | loop: "{{ list_files.files | map(attribute=' | ||
</ | </ | ||
</ | </ | ||
+ | |||
< | < | ||
- | < | + | < |
<code yaml> | <code yaml> | ||
</ | </ | ||
</ | </ |