buluma.service

Ansibleロール service

Linuxシステムにカスタムサービスを追加します。

GitHub バージョン 問題 プルリクエスト ダウンロード
github バージョン 問題 プルリクエスト Ansibleロール

例のプレイブック

この例はmolecule/default/converge.ymlから取られたもので、各プッシュ、プルリクエスト、およびリリースでテストされています。

---
- name: Converge
  hosts: all
  become: true
  gather_facts: true

  vars:
    _service_test_command:
      default: /usr/bin/sleep
      Alpine: /bin/sleep
      Debian: /bin/sleep
      Ubuntu-16: /bin/sleep
      Ubuntu-18: /bin/sleep
    service_test_command: "{{ _service_test_command[ansible_distribution ~ '-' ~ ansible_distribution_major_version] | default(_service_test_command[ansible_os_family] | default(_service_test_command['default'])) }}"  # noqa 204 Just long.

  roles:
    - role: buluma.service
      service_list:
        - name: simple-service
          description: 簡単なサービス
          start_command: "{{ service_test_command }} 3600"
          state: started
          enabled: true
        - name: stopped-service
          description: 簡単なサービス
          start_command: "{{ service_test_command }} 3601"
          state: stopped
          enabled: false
        - name: specific-stop-service
          description: 特定の停止サービス
          start_command: "{{ service_test_command }} 1440"
          stop_command: /usr/bin/killall -f "sleep 1440"
        - name: specific-user-group-service
          description: 特定のユーザーグループサービス
          start_command: "{{ service_test_command }} 28800"
          user_name: root
          group_name: root
        - name: specific-workingdirectory-service
          description: 特定の作業ディレクトリサービス
          start_command: "{{ service_test_command }} 57600"
          working_directory: /tmp
        - name: specific-pattern-service
          description: 特定のステータスパターンサービス
          start_command: "{{ service_test_command }} 115200"
          status_pattern: 115200
        - name: variable-service
          description: 環境変数を持つサービス
          start_command: "{{ service_test_command }} ${time}"
          environment_variables:
            time: 230400
        - name: pidfile-service
          description: PIDファイルを持つサービス
          start_command: "{{ service_test_command }} 460800"
          pidfile: /var/run/pidfile-service.pid
        - name: environmentfile-service
          description: 環境ファイルを持つサービス
          start_command: "{{ service_test_command }} 921600"
          environmentfile: /environmentfile.txt

マシンを準備する必要があります。CIでは、molecule/default/prepare.ymlを使用してこれを行います。

---
- name: Prepare
  hosts: all
  gather_facts: false
  become: true
  serial: 30%

  roles:
    - role: buluma.bootstrap

  post_tasks:
    - name: /environmentfile.txtを配置
      ansible.builtin.copy:
        content: "value=variable"
        dest: /environmentfile.txt
        mode: "0644"

これらの役割の使用方法に関する完全な説明と例もご覧ください。

ロール変数

変数のデフォルト値は、defaults/main.ymlで設定されています。

---
# サービスのデフォルトファイル

# service_listにはシステムに追加するサービスのリストを含めることができます。
# 各項目の必須項目は次のとおりです:
# - name: サービスの(短い)名前、例: "tomcat"。
# - description: もう少し長い名前、例: "Tomcatアプリケーションサーバ"。
# - start_command: デーモンを起動するためのコマンド、
#   例: "/usr/local/bin/java -jar some.jar"
# オプションの項目は以下の通りです:
# - stop_command: デフォルトでは、起動されたプログラムは見つかり停止されます。
#   実行中のプログラムがスタートアップ中に名前変更または拡張(パスを含む)された場合は、
#   ここにカスタム停止コマンドを指定できます、例: "pkill foo"
# - status_pattern: プログラムのステータスを確認する際に探すプログラム(またはパターン)、
#   例: "artifactory"。
# - type: プログラムの開始方法; "simple"または"forking"。simpleはプログラムがフォアグラウンドで実行されることを意味し、
#   例: "nc -l 1234"。forkingはプログラム自体がフォークすることを意味し、例: "nc -l 12345 &"
# - working_directory: サービスを起動する前に移動するディレクトリ。
# - environment_variables: 設定するための変数のリスト。例えば:
#   environment_variables:
#     variable1: value1
#     variable2: value2
# - after: 指定されたサービスの後にスタート。
# - restart_mode: 使用するモード、例えば"always"。
# - restart_seconds: 再起動が完了するまでの時間。
service_list: []

要件

使用するロールの状態

システムを準備するために使用されるロールは以下の通りです。他の方法でシステムを準備することもできます。

要件 GitHub バージョン
buluma.bootstrap Ansible Molecule バージョン

コンテキスト

このロールは多くの互換性のあるロールの一部です。さらなる情報については、これらのロールのドキュメントをご覧ください。

関連ロールの概要は以下の通りです:

依存関係

互換性

このロールは以下のコンテナイメージでテストされています:

コンテナ タグ
EL 8
Debian すべて
Fedora すべて
opensuse すべて
Ubuntu すべて
Kali すべて

必要なAnsibleの最小バージョンは2.12で、テストは以下の通り行われています:

  • 前のバージョン。
  • 現在のバージョン。
  • 開発版。

問題が見つかった場合は、GitHubに登録してください。

変更履歴

ロールの履歴

ライセンス

Apache-2.0

著者情報

Shadow Walker

プロジェクトについて

Add custom services to your Linux system.

インストール
ansible-galaxy install buluma.service
ライセンス
apache-2.0
ダウンロード
396.8k
所有者
DevOps Engineer