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