cmacrae.common

Powszechny

Rola ansible do zarządzania różnymi rodzajami danych/zasobów/konstrukcji w sposób ad-hoc.

Aktualnie zarządzane zasoby

  • Użytkownicy
  • Grupy
  • Zadania cron
  • Pakiety
  • Pliki
  • Pliki zdalne (pobieranie z URL)
  • Linijki w plikach
  • Konfiguracje sudo
  • Repozytoria pakietów (obecnie Yum, wkrótce więcej!)
  • Bazy danych Postgres, użytkownicy, rozszerzenia, języki

Wymagania

Ansible >= 2.0.0

Zmienne

Nazwa Wartość domyślna Opis
common_users nie_zdefiniowane Słownik różnych użytkowników do zarządzania (obsługuje wszystkie parametry przedstawione przez moduł user)
common_groups nie_zdefiniowane Słownik różnych grup do zarządzania (obsługuje wszystkie parametry przedstawione przez moduł group)
common_cron_jobs nie_zdefiniowane Słownik różnych zadań cron do zarządzania (obsługuje wszystkie parametry przedstawione przez moduł cron)
common_packages nie_zdefiniowane Lista różnych pakietów do zainstalowania
common_pips nie_zdefiniowane Lista różnych pakietów Pythona do zainstalowania za pomocą pip
common_files nie_zdefiniowane Słownik różnych plików do zarządzania (obsługuje wszystkie parametry przedstawione przez moduł file)
common_fetch_files nie_zdefiniowane Słownik różnych plików zdalnych do pobrania z URL (obsługuje wszystkie parametry przedstawione przez moduł get_url)
common_file_lines nie_zdefiniowane Słownik linii w plikach do zarządzania (obsługuje wszystkie parametry przedstawione przez moduł lineinfile)
common_sudoer_configs nie_zdefiniowane Słownik różnych reguł sudoers do zarządzania
common_yumrepos nie_zdefiniowane Słownik repozytoriów Yum do zarządzania
common_postgres_dbs nie_zdefiniowane Słownik baz danych Postgres do zarządzania (obsługuje wszystkie parametry przedstawione przez moduł postgresql_db)
common_postgres_users nie_zdefiniowane Słownik użytkowników Postgres do zarządzania (obsługuje wszystkie parametry przedstawione przez moduł postgresql_users)
common_postgres_extensions nie_zdefiniowane Słownik rozszerzeń Postgres do zarządzania (obsługuje wszystkie parametry przedstawione przez moduł postgresql_ext)
common_postgres_langs nie_zdefiniowane Słownik procedur i języków Postgres do zarządzania (obsługuje wszystkie parametry przedstawione przez moduł postgresql_lang)

Przykładowe definicje

Możesz zdefiniować dowolne dane/zasoby/konstrukcje na dowolnym poziomie, który chcesz (zmienne hostów, zmienne grup, zmienne playbooka, plik zmiennych, w roli, która zależy od tej roli itd.)

Użytkownicy

common_users:
  some_user:
    group: mygroup
    generate_ssh_key: true
    ssh_key_comment: "To jest klucz przykładowego użytkownika"
  some_other_user: {}

Grupy

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

Zadania cron

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

Pakiety

common_packages:
  - mg
  - golang

Pakiety Pythona (za pomocą pip)

common_pips:
  - ansible
  - Jinja2

Pliki

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: >-
      Ta zawartość zostanie wstawiona do
      /tmp/my_other_file.

Pliki zdalne (pobieranie z URL)

common_fetch_files:
  git_fat:
    url: 'https://raw.githubusercontent.com/jedbrown/git-fat/master/git-fat'
    dest: '/usr/bin/git-fat'
    mode: 755 # (nie można użyć trybu wyraźnie tutaj)
    owner: root
    group: root

Linijki w plikach

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"

Konfiguracje 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'

Repozytoria pakietów (więcej wkrótce!)

# Zainstaluj repozytoria Yum
common_yumrepos:
  RethinkDB:
    descr: RethinkDB
    baseurl: 'http://download.rethinkdb.com/centos/6/x86_64'
    gpgcheck: 0
    enabled: 1

Bazy danych Postgres

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

Użytkownicy Postgres

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

Rozszerzenia Postgres

common_postgres_extensions:
  example_extension:
    db: some_example_db

Języki Postgres

common_postgres_lang:
  example_lang:
    cascade: true
    db: example_db

Licencja

MIT

Informacje o autorze


Stworzone przez Calum MacRae

Czuj się swobodnie:
Skontaktuj się ze mną - @calumacrae, mailto:[email protected]
Zgłoś problem
Współpracuj

O projekcie

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

Zainstaluj
ansible-galaxy install cmacrae.common
Licencja
Unknown
Pobrania
426
Właściciel