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
所有者