yarkov
@yarkov
Помог ответ? Отметь решением.

Как написать playbook для Ansible правильно?

Пытаюсь прикрутить Ansible к проекту, чтобы упростить деплой.
Для обновления кода на VPS надо выполнить следующие действия:
  1. ./stop.sh
  2. git pull origin master
  3. ./eslint.sh
  4. ./build.sh
  5. ./builddocs.sh
  6. ./updatekey.sh
  7. ./start.sh

Ну и само собой если какой-то скрипт завершился неудачно, например eslint не прошел, то прерываем процесс и уведомляем меня )))
Пока вот что есть:
---
- hosts: production

  tasks:
    - name: Stop app
    shell: ./stop.sh

    - name: Start git pull
      git: repo=git@bitbucket.org:repo/projectname.git version=master dest=/home/user/projects/projectname
      sudo: yes
      sudo_user: user
      notify:
        - Start eslint

  handlers:
    - name: Start eslint
      shell: ./eslint.sh
      notify:
        - Start build

    - name: Start build
      shell: ./build.sh
      notify:
        - Start builddocs

    - name: Start builddocs
      shell: ./builddocs.sh
      notify:
        - Start updatekey

    - name: Start updatekey
      shell: ./updatekey.sh
      notify:
        - Start app

    - name: Start app
      shell: ./start.sh


Не запускал, ибо боюсь )))
Все правильно или что-то надо добавить?
А если дадите ссылку на описание структуры файла playbook на русском - буду признателен очень сильно.
  • Вопрос задан
  • 1276 просмотров
Пригласить эксперта
Ответы на вопрос 1
opium
@opium
Просто люблю качественно работать
какая то у вас жесть
посмотрите уже готовые сценарии
ваши скрипты надо бы раскидать в команды в самом ансибле а не вызывать их
ну и надо просто по очереди их выполнять а не вызывать цепочкой через хендлеры
запуск и остановку таска оформить в системд и юзать через service
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы