weareinteractive.pm2

Rôle Ansible weareinteractive.pm2

Statut de construction Galaxy Étiquettes GitHub Étoiles GitHub

weareinteractive.pm2 est un rôle Ansible qui :

  • installe pm2
  • gère les applications JSON
  • configure le service

Installation

Utiliser ansible-galaxy :

$ ansible-galaxy install weareinteractive.pm2

Utiliser requirements.yml :

- src: weareinteractive.pm2

Utiliser git :

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

Dépendances

Note :

Étant donné qu'Ansible Galaxy prend maintenant en charge les organisations, ce rôle est passé de franklinkim.pm2 à weareinteractive.pm2 !

Variables

Voici une liste de toutes les variables par défaut pour ce rôle, qui sont également disponibles dans defaults/main.yml.

---
# pm2_cmds:
#   - run: sendSignal             # nom de la commande pm2
#     args: SIGUSR2 my-app        # arguments optionnels à passer
#     path: /var/www/myapp        # chemin optionnel de chdir
#     ignore_errors: yes          # optionnel, ne pas échouer sur les erreurs pm2
#     env:                        # paramètres d'environnement optionnels
#       NODE_ENV: production
# pm2_apps:
#   - run: pm2.json               # vous pouvez également exécuter un fichier .js comme app.js
#     cmd: start                  # commande optionnelle à exécuter sur l'application
#     args: --name console_error  # arguments optionnels à passer, par exemple à app.js
#     path: /var/www/myapp        # chemin optionnel de chdir
#     env:                        # paramètres d'environnement optionnels
#       NODE_ENV: production
# pm2_post_cmds:
#   - run: save                   # nom de la commande pm2
#     args:                       # arguments optionnels à passer
#     path: /var/www/myapp        # chemin optionnel de chdir
#     ignore_errors: yes          # optionnel, ne pas échouer sur les erreurs pm2
#     env:                        # paramètres d'environnement optionnels
#       NODE_ENV: production
#

# liste des commandes à exécuter
# note : celles-ci seront exécutées avant la gestion des applications
pm2_cmds:
  # note : supprimer toutes les applications initialement à chaque exécution, donc seules les applications configurées existent
  - run: delete all
# environnement par défaut pour exécuter les commandes
pm2_cmds_default_env: {}
# liste des commandes à exécuter après la gestion des applications
pm2_post_cmds: []
# environnement par défaut pour exécuter les commandes postérieures
pm2_post_cmds_default_env: {}
# liste des chemins vers les déclarations d'applications JSON
pm2_apps: []
# environnement par défaut pour exécuter les applications
pm2_apps_default_env: {}
# commande par défaut à exécuter sur les applications
pm2_apps_default_cmd: start
# supprimer toutes initialement à chaque exécution
pm2_apps_delete_all: yes
# installer upstart
pm2_upstart: yes
# démarrer au démarrage
pm2_service_enabled: yes
# nom du service pour le système de démarrage
pm2_service_name: pm2-init.sh
# état actuel : démarré, arrêté
pm2_service_state: started
# version
pm2_version:
# utilisateur pour exécuter les commandes pm2
pm2_user: "{{ ansible_user_id }}"
# plateforme de démarrage
pm2_platform:

Gestionnaires

Voici les gestionnaires définis dans handlers/main.yml.

---

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

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

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

Utilisation

Voici un exemple de playbook :

---

- hosts: all
  become: yes
  roles:
    - weareinteractive.pm2
  vars:
    # Pour vagrant
    #pm2_upstart: yes
    #pm2_user: vagrant
    #pm2_service_name: pm2-vagrant
    # Pour docker
    pm2_user: root
    pm2_upstart: no # pas de support de service dans docker
    # Commun
    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

Tests

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

Contribuer

En l'absence d'un guide de style formel, veillez à maintenir le style de code existant. Ajoutez des tests unitaires et des exemples pour toute nouvelle fonctionnalité ou fonctionnalité modifiée.

  1. Forkez le projet
  2. Créez votre branche de fonctionnalité (git checkout -b ma-nouvelle-fonctionnalité)
  3. Validez vos modifications (git commit -am 'Ajoutez une nouvelle fonctionnalité')
  4. Poussez vers la branche (git push origin ma-nouvelle-fonctionnalité)
  5. Créez une nouvelle Pull Request

Note : Pour mettre à jour le fichier README.md, veuillez installer et exécuter ansible-role :

$ gem install ansible-role
$ ansible-role docgen

Licence

Copyright (c) We Are Interactive sous la licence MIT.

À propos du projet

Installs pm2 and manages apps

Installer
ansible-galaxy install weareinteractive.pm2
Licence
mit
Téléchargements
30.6k
Propriétaire