cmacrae.common
Común
Un rol de Ansible para gestionar tipos diversos de datos/recursos/construcciones de manera ad-hoc.
Recursos gestionables actualmente
- Usuarios
- Grupos
- Tareas programadas (Cron jobs)
- Paquetes
- Archivos
- Archivos remotos (descarga de URL)
- Líneas en archivos
- Configuraciones de
sudo
- Repositorios de paquetes (Yum por ahora, ¡más por venir!)
- Bases de datos, usuarios, extensiones y lenguajes de Postgres
Requisitos
Ansible >= 2.0.0
Variables
Nombre | Valor por Defecto | Descripción |
---|---|---|
common_users |
no definido | Un diccionario de usuarios varios para gestionar (soporta todos los parámetros presentados por el módulo user ) |
common_groups |
no definido | Un diccionario de grupos varios para gestionar (soporta todos los parámetros presentados por el módulo group ) |
common_cron_jobs |
no definido | Un diccionario de tareas programadas varias para gestionar (soporta todos los parámetros presentados por el módulo cron ) |
common_packages |
no definido | Una lista de paquetes varios para instalar |
common_pips |
no definido | Una lista de paquetes de Python varios para instalar mediante pip |
common_files |
no definido | Un diccionario de archivos varios para gestionar (soporta todos los parámetros presentados por el módulo file ) |
common_fetch_files |
no definido | Un diccionario de archivos remotos para descargar desde URLs (soporta todos los parámetros presentados por el módulo get_url ) |
common_file_lines |
no definido | Un diccionario de líneas de archivos para gestionar (soporta todos los parámetros presentados por el módulo lineinfile ) |
common_sudoer_configs |
no definido | Un diccionario de reglas de sudoers varias para gestionar |
common_yumrepos |
no definido | Un diccionario de repositorios Yum para gestionar |
common_postgres_dbs |
no definido | Un diccionario de bases de datos de Postgres para gestionar (soporta todos los parámetros presentados por el módulo postgresql_db ) |
common_postgres_users |
no definido | Un diccionario de usuarios de Postgres para gestionar (soporta todos los parámetros presentados por el módulo postgresql_users ) |
common_postgres_extensions |
no definido | Un diccionario de extensiones de Postgres para gestionar (soporta todos los parámetros presentados por el módulo postgresql_ext ) |
common_postgres_langs |
no definido | Un diccionario de lenguajes de procedimiento de Postgres para gestionar (soporta todos los parámetros presentados por el módulo postgresql_lang ) |
Ejemplos de definiciones
Puedes definir cualquier dato/recurso/construcción en el nivel que desees (host_vars
, group_vars
, variables de playbook, un archivo vars
, en un rol que dependa de este rol, etc.)
Usuarios
common_users:
some_user:
group: mygroup
generate_ssh_key: true
ssh_key_comment: "Esta es la clave del ejemplo de usuario"
some_other_user: {}
Grupos
common_groups:
mygroup: {}
my_other_group:
gid: 9001
system: true
Tareas programadas (Cron jobs)
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
Paquetes
common_packages:
- mg
- golang
Paquetes de Python (a través de pip
)
common_pips:
- ansible
- Jinja2
Archivos
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: >-
Este contenido se insertará en
/tmp/my_other_file.
Archivos remotos (descarga de URL)
common_fetch_files:
git_fat:
url: 'https://raw.githubusercontent.com/jedbrown/git-fat/master/git-fat'
dest: '/usr/bin/git-fat'
mode: 755 # (no se puede usar modo explícito aquí)
owner: root
group: root
Líneas en archivos
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"
Configuraciones de 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'
Repositorios de paquetes (más por venir)
# Desplegar repositorios Yum
common_yumrepos:
RethinkDB:
descr: RethinkDB
baseurl: 'http://download.rethinkdb.com/centos/6/x86_64'
gpgcheck: 0
enabled: 1
Bases de datos de Postgres
common_postgres_dbs:
example_db:
login_password: 5uP3r5ecr37
owner: some_user
template: example_template0
Usuarios de Postgres
common_postgres_users:
example_user:
db: some_test_db
encrypted: true
login_password: 5uP3r5ecr37
Extensiones de Postgres
common_postgres_extensions:
example_extension:
db: some_example_db
Lenguajes de Postgres
common_postgres_lang:
example_lang:
cascade: true
db: example_db
Licencia
MIT
Información del Autor
Creado por Calum MacRae
Siéntete libre de:
Contactarme - @calumacrae, mailto:[email protected]
Reportar un problema
Contribuir
Acerca del proyecto
An ansible role to manage miscellaneous types of data/resources/constructs in an ad-hoc fashion.
Instalar
ansible-galaxy install cmacrae.common
Licencia
Unknown
Descargas
426
Propietario