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

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


ansible:playbooks

Это старая версия документа!


Разные примеры

:!: CICD Работа с приложением

Backup.yml

---
- name: "Удаляем старый архив"
  file:
    path: '{{ myService_path }}/../{{ myService_appname }}.tar.gz'
    state: absent
  register: remove_backup

- name: "Архивируем папку приложения"
  shell:
    cmd: 'tar -czvf {{ myService_path }}/../{{ myService_appname }}.tar.gz --exclude={logs,properties} -C {{ myService_path }} . && echo OK'
    warn: false
  register: result
  failed_when: '"OK" not in result.stdout'
  changed_when: '"OK" in result.stdout'
  when: remove_backup is not failed
  any_errors_fatal: true

Stop_service.yml

---
- name: "Получаем информацию о сервисах в системе"
  ansible.builtin.service_facts:

- name: "Останавливаем myService.service если он есть в ОС"
  systemd:
    name: 'myService.service'
    state: stopped
  register: myServiceInfo
  until: myServiceInfo.state == "stopped"
  retries: 5
  delay: 10
  when: "'myService.service' in services"

Download.yml

---
- name: "Скачиваем jar из Nexus"
  maven_artifact:
    group_id: 'com.gmware.applications'
    artifact_id: 'myService_group'
    version: '{{ myService_version | default(omit) }}'
    repository_url: '{{ "%s/myService-snapshots" | format(nexus_base_url) }}'
    username: '{{ nexus_username }}'
    password: '{{ nexus_password }}'
    dest: '{{ "%s/%s.jar" | format(myService_path, myService_appname) }}'
    owner: '{{ myService_user }}'
    group: '{{ myService_group }}'
    mode: '640'
    verify_checksum: 'always'

handler/main.yml

---
- name: "Запуск службы myService"
  systemd:
    name: myService
    state: restarted
    enabled: true
    daemon_reload: yes
  listen: "start_restart_myService"
:!: Вариант с откатом

Restart_and_check.yml

---
- name: "Перезапускаем сервис myService"
  systemd:
    name: myService
    state: restarted
    enabled: true
    daemon_reload: yes
  ignore_errors: true

- name: "Пауза перед проверкой состояния"
  ansible.builtin.pause:
    seconds: 5

- name: "Инициализация переменной"
  set_fact: service_is_ok=false

- name: "Проверяем запущен ли сервис"
  shell:
    cmd: "systemctl is-active myService.service &>/dev/null"
  ignore_errors: true
  register: check_service

- name: "Флаг работающего сервиса"
  set_fact: service_is_ok=true
  when: check_service is not failed
---

- name: "Восстановливаем из бекапа"
  shell:
    cmd: "tar -xzvf {{ myService_path }}/backups/{{ myService_appname }}.tar.gz -C {{ myService_path }} && echo OK"
    warn: false
  register: result
  changed_when: '"OK" in result.stdout'
  failed_when: '"OK" not in result.stdout'

Бекап на винде

---
- name: "Создаем бекап"
  win_shell: |
    "Get-ChildItem -Path {{ myService_path }} -Exclude @('backups', 'logs') | 
    Compress-Archive -Force -DestinationPath {{ myService_path }}'backups\\prev_version.zip'"
:!:
 
:!:
 
:!:
 
ansible/playbooks.1701333503.txt.gz · Последнее изменение: 2023/11/30 08:38 — admin