weareinteractive.pm2

Rola Ansible weareinteractive.pm2

Status budowy Galaxy Tagi GitHub Gwiazdki GitHub

weareinteractive.pm2 to rola Ansible, która:

  • instaluje pm2
  • zarządza aplikacjami JSON
  • konfiguruje usługę

Instalacja

Używając ansible-galaxy:

$ ansible-galaxy install weareinteractive.pm2

Używając requirements.yml:

- src: weareinteractive.pm2

Używając git:

$ git clone https://github.com/weareinteractive/ansible-pm2.git weareinteractive.pm2

Zależności

Uwaga:

Ponieważ Ansible Galaxy obsługuje teraz organizacje, ta rola została przeniesiona z franklinkim.pm2 do weareinteractive.pm2!

Zmienne

Oto lista wszystkich domyślnych zmiennych dla tej roli, która jest również dostępna w defaults/main.yml.

---
# pm2_cmds:
#   - run: sendSignal             # nazwa komendy pm2
#     args: SIGUSR2 my-app        # opcjonalne argumenty do podania
#     path: /var/www/myapp        # opcjonalna ścieżka chdir
#     ignore_errors: yes          # opcjonalne - nie przerywaj na błędach pm2
#     env:                        # opcjonalne ustawienia środowiska
#       NODE_ENV: production
# pm2_apps:
#   - run: pm2.json               # możesz również uruchomić plik .js, jak app.js
#     cmd: start                  # opcjonalna komenda do uruchomienia aplikacji
#     args: --name console_error  # opcjonalne argumenty do podania, np. do app.js
#     path: /var/www/myapp        # opcjonalna ścieżka chdir
#     env:                        # opcjonalne ustawienia środowiska
#       NODE_ENV: production
# pm2_post_cmds:
#   - run: save                   # nazwa komendy pm2
#     args:                       # opcjonalne argumenty do podania
#     path: /var/www/myapp        # opcjonalna ścieżka chdir
#     ignore_errors: yes          # opcjonalne - nie przerywaj na błędach pm2
#     env:                        # opcjonalne ustawienia środowiska
#       NODE_ENV: production
#

# lista komend do uruchomienia
# uwaga: te komendy będą wykonywane przed zarządzaniem aplikacjami
pm2_cmds:
  # uwaga: usuń wszystkie aplikacje początkowo przy każdym uruchomieniu, aby istniały tylko skonfigurowane aplikacje
  - run: delete all
# domyślne środowisko do uruchamiania komend
pm2_cmds_default_env: {}
# lista komend do uruchomienia po zarządzaniu aplikacjami
# uwaga: te komendy będą wykonywane po zarządzaniu aplikacjami
pm2_post_cmds: []
# domyślne środowisko do uruchamiania komend po
pm2_post_cmds_default_env: {}
# lista ścieżek do deklaracji aplikacji JSON
pm2_apps: []
# domyślne środowisko do uruchamiania aplikacji
pm2_apps_default_env: {}
# domyślna komenda do uruchamiania aplikacji
pm2_apps_default_cmd: start
# usuń wszystkie początkowo przy każdym uruchomieniu
pm2_apps_delete_all: yes
# zainstaluj upstart
pm2_upstart: yes
# uruchom przy starcie
pm2_service_enabled: yes
# nazwa usługi dla systemu startowego
pm2_service_name: pm2-init.sh
# bieżący stan: uruchomiony, zatrzymany
pm2_service_state: started
# wersja
pm2_version:
# użytkownik do uruchamiania komend pm2
pm2_user: "{{ ansible_user_id }}"
# platforma uruchomieniowa
pm2_platform:

Obsłużone sytuacje

To są obsłużone sytuacje, które są definiowane w handlers/main.yml.

---

- name: restart pm2
  service:
    name: "{{ pm2_service_name }}"
    state: restarted
  when: pm2_upstart and pm2_service_state != 'stopped'

- name: reload pm2
  service:
    name: "{{ pm2_service_name }}"
    state: reloaded
  when: pm2_upstart and pm2_service_state != 'stopped'

- name: update pm2
  shell: pm2 update
  when: pm2_upstart and pm2_service_state != 'stopped'

Użycie

Oto przykład playbooka:

---

- hosts: all
  become: yes
  roles:
    - weareinteractive.pm2
  vars:
    # Dla vagranta
    #pm2_upstart: yes
    #pm2_user: vagrant
    #pm2_service_name: pm2-vagrant
    # Dla dockera
    pm2_user: root
    pm2_upstart: no # brak wsparcia dla usług w dockerze
    # Wspólne
    pm2_cmds:
      - run: delete
        args: console_error
        ignore_errors: yes
    pm2_apps:
      - run: apps.json
        path: "/etc/ansible/roles/weareinteractive.pm2/tests"
        cmd: startOrGracefulReload
      - run: console_error.js
        args: --name console_error
        path: "/etc/ansible/roles/weareinteractive.pm2/tests/apps"
        cmd: start
        env:
          NODE_ENV: dev
    pm2_apps_default_env:
      NODE_ENV: production

Testowanie

$ git clone https://github.com/weareinteractive/ansible-pm2.git
$ cd ansible-pm2
$ make test

Wkład

W braku formalnego przewodnika stylu, należy dbać o zachowanie istniejącego stylu kodu. Dodawaj testy jednostkowe i przykłady dla każdej nowej lub zmienionej funkcjonalności.

  1. Forkuj projekt
  2. Stwórz swoją gałąź funkcji (git checkout -b my-new-feature)
  3. Zatwierdź zmiany (git commit -am 'Dodaj jakąś funkcję')
  4. Wypchnij do gałęzi (git push origin my-new-feature)
  5. Utwórz nowy Pull Request

Uwaga: Aby zaktualizować plik README.md, zainstaluj i uruchom ansible-role:

$ gem install ansible-role
$ ansible-role docgen

Licencja

Copyright (c) We Are Interactive na podstawie licencji MIT.

O projekcie

Installs pm2 and manages apps

Zainstaluj
ansible-galaxy install weareinteractive.pm2
Licencja
mit
Pobrania
30.6k
Właściciel