cmacrae.common

Gemeinsam

Eine Ansible-Rolle zur Verwaltung verschiedener Arten von Daten/Ressourcen/Konstrukten auf adhoc Weise.

Aktuell verwaltbare Ressourcen

  • Benutzer
  • Gruppen
  • Cron-Jobs
  • Pakete
  • Dateien
  • Remote-Dateien (URL-Abfrage)
  • Zeilen in Dateien
  • sudo-Konfigurationen
  • Paket-Repositories (momentan Yum, mehr wird kommen!)
  • Postgres-Datenbanken, Benutzer, Erweiterungen, Sprachen

Anforderungen

Ansible >= 2.0.0

Variablen

Name Standardwert Beschreibung
common_users nicht_definiert Ein Wörterbuch von verschiedenen Benutzern zur Verwaltung (unterstützt alle Parameter des user Moduls)
common_groups nicht_definiert Ein Wörterbuch von verschiedenen Gruppen zur Verwaltung (unterstützt alle Parameter des group Moduls)
common_cron_jobs nicht_definiert Ein Wörterbuch von verschiedenen Cron-Jobs zur Verwaltung (unterstützt alle Parameter des cron Moduls)
common_packages nicht_definiert Eine Liste von verschiedenen Paketen zur Installation
common_pips nicht_definiert Eine Liste von verschiedenen Python-Paketen zur Installation über pip
common_files nicht_definiert Ein Wörterbuch von verschiedenen Dateien zur Verwaltung (unterstützt alle Parameter des file Moduls)
common_fetch_files nicht_definiert Ein Wörterbuch von verschiedenen Remote-Dateien zum Abrufen von URLs (unterstützt alle Parameter des get_url Moduls)
common_file_lines nicht_definiert Ein Wörterbuch von Dateizellen zur Verwaltung (unterstützt alle Parameter des lineinfile Moduls)
common_sudoer_configs nicht_definiert Ein Wörterbuch von verschiedenen Sudo-Regeln zur Verwaltung
common_yumrepos nicht_definiert Ein Wörterbuch von Yum-Repositories zur Verwaltung
common_postgres_dbs nicht_definiert Ein Wörterbuch von Postgres-Datenbanken zur Verwaltung (unterstützt alle Parameter des postgresql_db Moduls)
common_postgres_users nicht_definiert Ein Wörterbuch von Postgres-Benutzern zur Verwaltung (unterstützt alle Parameter des postgresql_users Moduls)
common_postgres_extensions nicht_definiert Ein Wörterbuch von Postgres-Erweiterungen zur Verwaltung (unterstützt alle Parameter des postgresql_ext Moduls)
common_postgres_langs nicht_definiert Ein Wörterbuch von Postgres-Prozedursprachen zur Verwaltung (unterstützt alle Parameter des postgresql_lang Moduls)

Beispieldefinitionen

Sie können beliebige Daten/Ressourcen/Konstrukte auf jeder gewünschten Ebene definieren (host_vars, group_vars, Playbook vars, eine vars-Datei, in einer Rolle, die von dieser Rolle abhängt usw.)

Benutzer

common_users:
  some_user:
    group: mygroup
    generate_ssh_key: true
    ssh_key_comment: "Dies ist der Schlüssel des Beispielbenutzers"
  some_other_user: {}

Gruppen

common_groups:
  mygroup: {}
  my_other_group:
    gid: 9001
    system: true

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

Pakete

common_packages:
  - mg
  - golang

Python-Pakete (über pip)

common_pips:
  - ansible
  - Jinja2

Dateien

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: >-
      Dieser Inhalt wird in
      /tmp/my_other_file eingefügt.

Remote-Dateien (URL-Abfrage)

common_fetch_files:
  git_fat:
    url: 'https://raw.githubusercontent.com/jedbrown/git-fat/master/git-fat'
    dest: '/usr/bin/git-fat'
    mode: 755 # (kann hier nicht explizit verwendet werden)
    owner: root
    group: root

Zeilen in Dateien

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-Konfigurationen

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'

Paket-Repositories (mehr wird kommen!)

# Bereitstellen von Yum-Repositories
common_yumrepos:
  RethinkDB:
    descr: RethinkDB
    baseurl: 'http://download.rethinkdb.com/centos/6/x86_64'
    gpgcheck: 0
    enabled: 1

Postgres-Datenbanken

common_postgres_dbs:
  example_db:
    login_password: 5uP3r5ecr37
    owner: some_user
    template: example_template0

Postgres-Benutzer

common_postgres_users:
  example_user:
    db: some_test_db
    encrypted: true
    login_password: 5uP3r5ecr37

Postgres-Erweiterungen

common_postgres_extensions:
  example_extension:
    db: some_example_db

Postgres-Sprachen

common_postgres_lang:
  example_lang:
    cascade: true
    db: example_db

Lizenz

MIT

Autor Informationen


Erstellt von Calum MacRae

Fühlen Sie sich frei:
Kontaktieren Sie mich - @calumacrae, mailto:[email protected]
Ein Problem melden
Beitragen

Über das Projekt

An ansible role to manage miscellaneous types of data/resources/constructs in an ad-hoc fashion.

Installieren
ansible-galaxy install cmacrae.common
GitHub Repository
Lizenz
Unknown
Downloads
426
Besitzer