/ansible-pm2

Ansible role which installs pm2 and manages apps

Primary LanguageShellMIT LicenseMIT

Ansible franklinkim.pm2 role

Build Status Galaxy GitHub Tags GitHub Stars

franklinkim.pm2 is an Ansible role which:

  • installs pm2
  • manages JSON apps
  • configures service

Installation

Using ansible-galaxy:

$ ansible-galaxy install franklinkim.pm2

Using requirements.yml:

- src: franklinkim.pm2

Using git:

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

Dependencies

Variables

Here is a list of all the default variables for this role, which are also available in defaults/main.yml.

---
#
# pm2_apps:
#   - run: pm2.json               # you can also run a .js file like app.js
#     args: --name console_error  # optional arguements to pass i.e. to app.js
#     path: /var/www/myapp        # optional chdir path
#     env:                        # optional environment settings
#       NODE_ENV: production
#

# list of paths to JSON app declarations
pm2_apps: []
# startup system
pm2_startup: ubuntu
# start on boot
pm2_service_enabled: yes
# current state: started, stopped
pm2_service_state: started
# version
pm2_version:

Handlers

These are the handlers that are defined in handlers/main.yml.

---

- name: restart pm2
  service: name=pm2-init.sh state=restarted
  when: pm2_service_state != 'stopped'

Usage

This is an example playbook:

---

- hosts: all
  sudo: yes
  roles:
    - franklinkim.nodejs
    - franklinkim.pm2
  vars:
    pm2_apps:
      - run: apps.json
        path: "{{ pwd }}/tests"
      - run: console_error.js
        args: --name console_error
        path: "{{ pwd }}/tests/apps"
        env:
          NODE_ENV: dev
    pm2_startup: ubuntu

Testing

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

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests and examples for any new or changed functionality.

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Note: To update the README.md file please install and run ansible-role:

$ gem install ansible-role
$ ansible-role docgen

License

Copyright (c) We Are Interactive under the MIT license.