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

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


service:ansible

Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
service:ansible [13.03.2025 13:27] – [ad-hoc команды] viacheslavservice:ansible [26.03.2025 13:33] (текущий) – [Литература] viacheslav
Строка 913: Строка 913:
 Дополнительно про инвентори: [[https://habr.com/ru/articles/509938/|Основы Ansible, без которых ваши плейбуки — комок слипшихся макарон, часть 2]]\\ Дополнительно про инвентори: [[https://habr.com/ru/articles/509938/|Основы Ansible, без которых ваши плейбуки — комок слипшихся макарон, часть 2]]\\
 Template Designer Documentation: https://jinja.palletsprojects.com/en/stable/templates/ Template Designer Documentation: https://jinja.palletsprojects.com/en/stable/templates/
 +
 +===== Выборка из словаря по значениям из списка =====
 +В зависимости от набора работающих служб получать набор строк для формирования API-запроса. Если есть работающие службы, которые отсутствуют в словаре, они будут пропущены по условию.
 +
 +<file yaml services_status.yml>
 +- hosts: k3
 +  roles:
 +    - services_status
 +  vars:
 +    services:
 +      project-service1: main
 +      project-service2: thingy
 +      project-service3: bonanza
 +</file>
 +
 +<file yaml roles/services_status/tasks/main.yml>
 +- name: Gather running services
 +  shell:
 +    cmd: systemctl --user --type service --state running --plain --quiet |grep ^project- |sed -E 's#\.service.*##'
 +  register: running_services
 +
 +# В curl body - это --data '{"dataSources": ["main","thingy","bonanza"]}'
 +- name: Update API
 +  uri:
 +    url: https://localhost/admin/api/update_metadata
 +    user: admin
 +    password: {{ pass }}
 +    force_basic_auth: true
 +    method: POST
 +    validate_certs: false
 +    body_format: json
 +    body:
 +      dataSources:
 +        - "{{ services[item] }}"
 +  with_items:
 +    - "{{ running_services['stdout_lines'] }}"
 +  when: item in services | list
 +</file>
 +
 +Работают 1-я и 3-я службы, 2-я не работает. Значения получаются main и bonanza соответственно.
 +<code bash>
 +ansible-playbook services_status.yml 
 +
 +TASK [services_status : debug] **********************************************************************************************************
 +ok: [k3] => (item=project-service1) => {
 +    "msg": "Values are: main"
 +}
 +ok: [k3] => (item=project-service3) => {
 +    "msg": "Values are: bonanza"
 +}
 +</code>
 +
 ====== Ошибки, проблемы ====== ====== Ошибки, проблемы ======
  
Строка 944: Строка 996:
 [[https://www.youtube.com/playlist?list=PLg5SS_4L6LYufspdPupdynbMQTBnZd31N|ADV-IT - Уроки Ansible на Русском]]\\ [[https://www.youtube.com/playlist?list=PLg5SS_4L6LYufspdPupdynbMQTBnZd31N|ADV-IT - Уроки Ansible на Русском]]\\
 [[https://www.youtube.com/playlist?list=PLT98CRl2KxKEUHie1m24-wkyHpEsa4Y70|Getting started with Ansible (Learn Linux TV)]]\\ [[https://www.youtube.com/playlist?list=PLT98CRl2KxKEUHie1m24-wkyHpEsa4Y70|Getting started with Ansible (Learn Linux TV)]]\\
 +[[https://ezhvsalate.ru/posts/ansible-peredaem-json-v-tele-zaprosa-ispolzuia-modul-uri|Ansible: передаем json в теле запроса, используя модуль uri]]\\
  
  
service/ansible.1741872432.txt.gz · Последнее изменение: 13.03.2025 13:27 — viacheslav

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki