cmacrae.common
Commun
Un rôle Ansible pour gérer divers types de données/ressources/constructions de manière ad hoc.
Ressources actuellement gérables
- Utilisateurs
- Groupes
- Tâches cron
- Packages
- Fichiers
- Fichiers distants (récupération par URL)
- Lignes dans les fichiers
- Configurations
sudo
- Dépôts de paquets (Yum pour le moment, d'autres à venir!)
- Bases de données Postgres, utilisateurs, extensions, langues
Exigences
Ansible >= 2.0.0
Variables
Nom | Valeur par Défaut | Description |
---|---|---|
common_users |
non défini | Un dictionnaire d'utilisateurs divers à gérer (supporte tous les paramètres du module user ) |
common_groups |
non défini | Un dictionnaire de groupes divers à gérer (supporte tous les paramètres du module group ) |
common_cron_jobs |
non défini | Un dictionnaire de tâches cron diverses à gérer (supporte tous les paramètres du module cron ) |
common_packages |
non défini | Une liste de paquets divers à installer |
common_pips |
non défini | Une liste de paquets Python divers à installer via pip |
common_files |
non défini | Un dictionnaire de fichiers divers à gérer (supporte tous les paramètres du module file ) |
common_fetch_files |
non défini | Un dictionnaire de fichiers distants à récupérer depuis des URLs (supporte tous les paramètres du module get_url ) |
common_file_lines |
non défini | Un dictionnaire de lignes de fichiers à gérer (supporte tous les paramètres du module lineinfile ) |
common_sudoer_configs |
non défini | Un dictionnaire de règles sudoers diverses à gérer |
common_yumrepos |
non défini | Un dictionnaire de dépôts Yum à gérer |
common_postgres_dbs |
non défini | Un dictionnaire de bases de données Postgres à gérer (supporte tous les paramètres du module postgresql_db ) |
common_postgres_users |
non défini | Un dictionnaire d'utilisateurs Postgres à gérer (supporte tous les paramètres du module postgresql_users ) |
common_postgres_extensions |
non défini | Un dictionnaire d'extensions Postgres à gérer (supporte tous les paramètres du module postgresql_ext ) |
common_postgres_langs |
non défini | Un dictionnaire de langages procéduraux Postgres à gérer (supporte tous les paramètres du module postgresql_lang ) |
Definitions d'exemple
Vous pouvez définir n'importe quelles données/ressources/constructions à tout niveau que vous souhaitez (host_vars
, group_vars
, variables de playbook, un fichier vars
, dans un rôle qui dépend de ce rôle, etc.)
Utilisateurs
common_users:
some_user:
group: mygroup
generate_ssh_key: true
ssh_key_comment: "Ceci est une clé d'utilisateur d'exemple"
some_other_user: {}
Groupes
common_groups:
mygroup: {}
my_other_group:
gid: 9001
system: true
Tâches cron
common_cron_jobs:
'vérifier les répertoires':
minute: 0
hour: '5,2'
job: 'ls -alh > /dev/null'
state: absent
'une vieille tâche':
state: absent
'une tâche à exécuter au redémarrage':
special_time: reboot
job: '/path/to/some_script.sh'
state: absent
'une tâche avec un fichier cron':
job: 'uptime &> /dev/null'
cron_file: cron_example
state: absent
Packages
common_packages:
- mg
- golang
Paquets Python (via pip
)
common_pips:
- ansible
- Jinja2
Fichiers
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: >-
Ce contenu sera inséré dans
/tmp/my_other_file.
Fichiers distants (récupération par URL)
common_fetch_files:
git_fat:
url: 'https://raw.githubusercontent.com/jedbrown/git-fat/master/git-fat'
dest: '/usr/bin/git-fat'
mode: 755 # (ne peut pas utiliser un mode explicite ici)
owner: root
group: root
Lignes dans les fichiers
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"
Configurations 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'
Dépôts de paquets (plus à venir !)
# Déployer des dépôts Yum
common_yumrepos:
RethinkDB:
descr: RethinkDB
baseurl: 'http://download.rethinkdb.com/centos/6/x86_64'
gpgcheck: 0
enabled: 1
Bases de données Postgres
common_postgres_dbs:
example_db:
login_password: 5uP3r5ecr37
owner: some_user
template: example_template0
Utilisateurs Postgres
common_postgres_users:
example_user:
db: some_test_db
encrypted: true
login_password: 5uP3r5ecr37
Extensions Postgres
common_postgres_extensions:
example_extension:
db: some_example_db
Langues Postgres
common_postgres_lang:
example_lang:
cascade: true
db: example_db
Licence
MIT
Informations sur l'auteur
Créé par Calum MacRae
N'hésitez pas à me contacter - @calumacrae, mailto:[email protected]
Signaler un problème
Contribuer
À propos du projet
An ansible role to manage miscellaneous types of data/resources/constructs in an ad-hoc fashion.
Installer
ansible-galaxy install cmacrae.common
Licence
Unknown
Téléchargements
426
Propriétaire