weareinteractive.pm2
Rola Ansible weareinteractive.pm2
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
- Ansible >= 2.4
- zainstalowany nodejs, np. z weareinteractive.nodejs
Uwaga:
Ponieważ Ansible Galaxy obsługuje teraz organizacje, ta rola została przeniesiona z
franklinkim.pm2
doweareinteractive.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.
- Forkuj projekt
- Stwórz swoją gałąź funkcji (
git checkout -b my-new-feature
) - Zatwierdź zmiany (
git commit -am 'Dodaj jakąś funkcję'
) - Wypchnij do gałęzi (
git push origin my-new-feature
) - 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.
Zainstaluj
ansible-galaxy install weareinteractive.pm2
Licencja
mit
Pobrania
30.6k
Właściciel