cmacrae.common

一般的な情報

様々な種類のデータやリソース、構造物をアドホックに管理するためのAnsibleロールです。

現在管理可能なリソース

  • ユーザー
  • グループ
  • Cronジョブ
  • パッケージ
  • ファイル
  • リモートファイル(URL取得)
  • ファイル内の行
  • sudo設定
  • パッケージリポジトリ(現時点ではYum、今後追加予定!)
  • Postgresデータベース、ユーザー、拡張機能、言語

要件

Ansible >= 2.0.0

変数

名称 デフォルト値 説明
common_users 定義されていない 管理する雑多なユーザーの辞書(user モジュールが提供するすべてのパラメータをサポート)
common_groups 定義されていない 管理する雑多なグループの辞書(group モジュールが提供するすべてのパラメータをサポート)
common_cron_jobs 定義されていない 管理する雑多なCronジョブの辞書(cron モジュールが提供するすべてのパラメータをサポート)
common_packages 定義されていない インストールする雑多なパッケージのリスト
common_pips 定義されていない pipを使ってインストールする雑多なPythonパッケージのリスト
common_files 定義されていない 管理する雑多なファイルの辞書(file モジュールが提供するすべてのパラメータをサポート)
common_fetch_files 定義されていない URLから取得する雑多なリモートファイルの辞書(get_url モジュールが提供するすべてのパラメータをサポート)
common_file_lines 定義されていない 管理するファイル内の行の辞書(lineinfile モジュールが提供するすべてのパラメータをサポート)
common_sudoer_configs 定義されていない 管理する雑多なsudoersルールの辞書
common_yumrepos 定義されていない 管理するYumリポジトリの辞書
common_postgres_dbs 定義されていない 管理するPostgresデータベースの辞書(postgresql_db モジュールが提供するすべてのパラメータをサポート)
common_postgres_users 定義されていない 管理するPostgresユーザーの辞書(postgresql_users モジュールが提供するすべてのパラメータをサポート)
common_postgres_extensions 定義されていない 管理するPostgres拡張機能の辞書(postgresql_ext モジュールが提供するすべてのパラメータをサポート)
common_postgres_langs 定義されていない 管理するPostgresの手続き言語の辞書(postgresql_lang モジュールが提供するすべてのパラメータをサポート)

例示定義

任意のレベルでデータやリソース、構造物を定義できます(host_vars, group_vars、プレイブックのvars、このロールに依存するロール内のvarsファイルなど)。

ユーザー

common_users:
  some_user:
    group: mygroup
    generate_ssh_key: true
    ssh_key_comment: "これは例のユーザーの鍵ペアです"
  some_other_user: {}

グループ

common_groups:
  mygroup: {}
  my_other_group:
    gid: 9001
    system: true

Cronジョブ

common_cron_jobs:
  'check dirs':
    minute: 0
    hour: '5,2'
    job: 'ls -alh > /dev/null'
    state: absent
  'some old job':
    state: absent
  'a job to run at reboot':
    special_time: reboot
    job: '/path/to/some_script.sh'
    state: absent
  'a job with a cron file':
    job: 'uptime &> /dev/null'
    cron_file: cron_example
    state: absent

パッケージ

common_packages:
  - mg
  - golang

Pythonパッケージ(pip経由)

common_pips:
  - ansible
  - Jinja2

ファイル

common_files:
  /tmp/myfile:
    owner: some_user
    group: some_user
    mode: 0644
    src: /tmp/my_example_file
  /tmp/my_other_file:
    owner: some_user
    group: some_user
    mode: 0644
    content: >-
      この内容は
      /tmp/my_other_file に挿入されます。

リモートファイル(URL取得)

common_fetch_files:
  git_fat:
    url: 'https://raw.githubusercontent.com/jedbrown/git-fat/master/git-fat'
    dest: '/usr/bin/git-fat'
    mode: 755 # (ここでは明示的なモードを使用できません)
    owner: root
    group: root

ファイル内の行

common_file_lines:
  /etc/hosts:
    regexp: '^127\.0\.0\.1'
    line: '127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4'
    owner: root
    group: root
    mode: 0644
  /etc/sudoers:
    state: absent
    regexp: "^%wheel"

sudo設定

common_sudoer_configs:
  hubot_multi_sudo_rules:
    content:
      - 'hubot ALL=(root) NOPASSWD: /usr/bin/systemctl restart hubot-*'
      - 'hubot ALL=(root) NOPASSWD: /usr/bin/systemctl start hubot-*'
      - 'hubot ALL=(root) NOPASSWD: /usr/bin/systemctl status hubot-*'
      - 'hubot ALL=(root) NOPASSWD: /usr/bin/systemctl stop hubot-*'
  hubot_just_date_cmd:
    content:
      - 'hubot ALL=(root) NOPASSWD: /bin/date'

パッケージリポジトリ(今後追加予定!)

# Yumリポジトリの展開
common_yumrepos:
  RethinkDB:
    descr: RethinkDB
    baseurl: 'http://download.rethinkdb.com/centos/6/x86_64'
    gpgcheck: 0
    enabled: 1

Postgresデータベース

common_postgres_dbs:
  example_db:
    login_password: 5uP3r5ecr37
    owner: some_user
    template: example_template0

Postgresユーザー

common_postgres_users:
  example_user:
    db: some_test_db
    encrypted: true
    login_password: 5uP3r5ecr37

Postgres拡張機能

common_postgres_extensions:
  example_extension:
    db: some_example_db

Postgres言語

common_postgres_lang:
  example_lang:
    cascade: true
    db: example_db

ライセンス

MIT

著者情報


作成者: Calum MacRae

お気軽にご連絡ください:
Twitterで連絡 - @calumacrae, メール
問題を報告
貢献する

プロジェクトについて

An ansible role to manage miscellaneous types of data/resources/constructs in an ad-hoc fashion.

インストール
ansible-galaxy install cmacrae.common
ライセンス
Unknown
ダウンロード
426
所有者