weareinteractive.pm2

Ansible weareinteractive.pm2 ロール

ビルドステータス Galaxy GitHub タグ GitHub スター

weareinteractive.pm2Ansible ロールで、以下の機能があります:

  • pm2のインストール
  • JSONアプリの管理
  • サービスの設定

インストール

ansible-galaxy を使う場合:

$ ansible-galaxy install weareinteractive.pm2

requirements.yml を使う場合:

- src: weareinteractive.pm2

git を使う場合:

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

依存関係

注意:

Ansible Galaxyは現在、組織をサポートしています。このロールは franklinkim.pm2 から weareinteractive.pm2 に移行しました!

変数

このロールのすべてのデフォルト変数のリストは defaults/main.yml にもあります。

---
# pm2_cmds:
#   - run: sendSignal             # pm2 コマンド名
#     args: SIGUSR2 my-app        # オプションの引数
#     path: /var/www/myapp        # オプションの作業ディレクトリ
#     ignore_errors: yes          # オプションです。pm2エラーで失敗しない
#     env:                        # オプションの環境設定
#       NODE_ENV: production
# pm2_apps:
#   - run: pm2.json               # app.jsのような.jsファイルも実行できます
#     cmd: start                  # アプリで実行するオプションのコマンド
#     args: --name console_error  # アプリに渡すオプションの引数
#     path: /var/www/myapp        # オプションの作業ディレクトリ
#     env:                        # オプションの環境設定
#       NODE_ENV: production
# pm2_post_cmds:
#   - run: save                   # pm2 コマンド名
#     args:                       # オプションの引数
#     path: /var/www/myapp        # オプションの作業ディレクトリ
#     ignore_errors: yes          # オプションです。pm2エラーで失敗しない
#     env:                        # オプションの環境設定
#       NODE_ENV: production
#

# 実行するコマンドのリスト
# 注意:これらはアプリを管理する前に実行されます
pm2_cmds:
  # 注意:すべてのアプリを初めに削除して、設定されたアプリだけが存在します
  - run: delete all
# コマンドを実行するデフォルトの環境
pm2_cmds_default_env: {}
# 実行する後処理コマンドのリスト
# 注意:これらはアプリを管理した後に実行されます
pm2_post_cmds: []
# 後処理コマンドを実行するデフォルトの環境
pm2_post_cmds_default_env: {}
# JSONアプリの宣言のパスのリスト
pm2_apps: []
# アプリを実行するデフォルトの環境
pm2_apps_default_env: {}
# アプリで実行するデフォルトのコマンド
pm2_apps_default_cmd: start
# 毎回の実行時に初めにすべてを削除
pm2_apps_delete_all: yes
# upstartをインストール
pm2_upstart: yes
# ブート時に開始
pm2_service_enabled: yes
# スタートアップシステム用のサービス名
pm2_service_name: pm2-init.sh
# 現在の状態: started, stopped
pm2_service_state: started
# バージョン
pm2_version:
# pm2コマンドを実行するユーザー
pm2_user: "{{ ansible_user_id }}"
# スタートアッププラットフォーム
pm2_platform:

ハンドラー

これらは handlers/main.yml で定義されたハンドラーです。

---

- name: pm2を再起動
  service:
    name: "{{ pm2_service_name }}"
    state: restarted
  when: pm2_upstart and pm2_service_state != 'stopped'

- name: pm2を再読み込み
  service:
    name: "{{ pm2_service_name }}"
    state: reloaded
  when: pm2_upstart and pm2_service_state != 'stopped'

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

使用方法

以下は例のプレイブックです:

---

- hosts: all
  become: yes
  roles:
    - weareinteractive.pm2
  vars:
    # Vagrantの場合
    #pm2_upstart: yes
    #pm2_user: vagrant
    #pm2_service_name: pm2-vagrant
    # Dockerの場合
    pm2_user: root
    pm2_upstart: no # docker内でサービスサポートなし
    # 共通設定
    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

テスト

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

貢献

正式なスタイルガイドはありませんが、既存のコーディングスタイルを守ってください。新しい機能や変更された機能にはユニットテストと例を追加してください。

  1. フォークします
  2. フィーチャーブランチを作成 (git checkout -b my-new-feature)
  3. 変更をコミットします (git commit -am 'Add some feature')
  4. ブランチにプッシュします (git push origin my-new-feature)
  5. 新しいプルリクエストを作成します

注意:README.mdファイルを更新するには、ansible-roleをインストールして実行してください:

$ gem install ansible-role
$ ansible-role docgen

ライセンス

著作権 (c) We Are Interactive MITライセンスのもとで。

プロジェクトについて

Installs pm2 and manages apps

インストール
ansible-galaxy install weareinteractive.pm2
ライセンス
mit
ダウンロード
30.6k