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 |
не определено | Список различных Python-пакетов для установки через pip |
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:
'проверка директорий':
minute: 0
hour: '5,2'
job: 'ls -alh > /dev/null'
state: absent
'некоторые старые задачи':
state: absent
'задача для выполнения при перезагрузке':
special_time: reboot
job: '/path/to/some_script.sh'
state: absent
'задача с файлом cron':
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
Не стесняйтесь:
Свяжитесь со мной - @calumacrae, mailto:[email protected]
Сообщить об ошибке
Внести вклад
О проекте
An ansible role to manage miscellaneous types of data/resources/constructs in an ad-hoc fashion.
Установить
ansible-galaxy install cmacrae/ansible-common
Лицензия
Unknown
Загрузки
414
Владелец