constrict0r.sourcez

sourcez


.. image:: https://gitlab.com/constrict0r/sourcez/badges/master/pipeline.svg :alt: pipeline

.. image:: https://travis-ci.com/constrict0r/sourcez.svg :alt: travis

.. image:: https://readthedocs.org/projects/sourcez/badge :alt: readthedocs

Rola Ansible do dodawania repozytoriów do źródeł apt.

.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/avatar.png :alt: avatar

Pełna dokumentacja na Readthedocs <https://sourcez.readthedocs.io>_.

Kod źródłowy dostępny na:

Github <https://github.com/constrict0r/sourcez>_.

Gitlab <https://gitlab.com/constrict0r/sourcez>_.

Część: <https://gitlab.com/explore/projects?tag=doombot>_

.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/doombot.png :alt: doombot

Składniki

.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/ingredient.png :alt: składnik

Zawartość


  • Opis <#Opis>_
  • Użycie <#Użycie>_
  • Zmienne <#Zmienne>_
    • repozytoria <#repozytoria>_
    • konfiguracja <#konfiguracja>_
  • YAML <#YAML>_
  • Atrybuty <#Atrybuty>_
    • item_expand <#item-expand>_
    • item_path <#item-path>_
  • Wymagania <#Wymagania>_
  • Kompatybilność <#Kompatybilność>_
  • Licencja <#Licencja>_
  • Linki <#Linki>_
  • UML <#UML>_
    • Wdrożenie <#wdrożenie>_
    • Główne <#główne>_
  • Autor <#Autor>_

Opis


Rola Ansible do dodawania repozytoriów apt do źródeł apt.

Ta rola wykonuje następujące działania:

  • Zapewnia, że wymagania są zainstalowane.

  • Zapewnia, że bieżący użytkownik ma uprawnienia administratora (root).

  • Jeśli zmienna repozytoria jest zdefiniowana, dodaje do źródeł apt repozytoria, które są na niej wymienione.

  • Jeśli zmienna konfiguracja jest zdefiniowana, dodaje do apt źródeł repozytoria, które są na niej wymienione.

Użycie


  • Aby zainstalować i wykonać:

..

::

  ansible-galaxy install constrict0r.sourcez
  ansible localhost -m include_role -a name=constrict0r.sourcez -K
  • Przekazywanie zmiennych:

..

::

  ansible localhost -m include_role -a name=constrict0r.sourcez -K \
      -e "{repozytoria: [{name: multimedia, repo: 'deb http://www.debian-multimedia.org sid main'}]}"
  • Aby dodać rolę do playbooka:

..

::

  - hosts: serwery
    roles:
        - {role: constrict0r.sourcez}
  • Aby dodać rolę jako zależność w innej roli:

..

::

  dependencies:
    - role: constrict0r.sourcez
      repozytoria: [{name: multimedia, repo: 'deb http://www.debian-multimedia.org sid main'}]
  • Aby użyć roli w zadań:

..

::

  - name: Wykonaj zadanie roli.
    import_role:
      name: constrict0r.sourcez
    vars:
      repozytoria: [{name: multimedia, repo: 'deb http://www.debian-multimedia.org sid main'}]

Aby uruchomić testy:

::

cd sourcez chmod +x testme.sh ./testme.sh

W niektórych testach może być potrzebne użycie sudo.

Zmienne


Obsługiwane są następujące zmienne:

repozytoria

Lista repozytoriów do dodania do źródeł apt.

Ta lista może być zmieniana przez przekazanie tablicy repozytoria podczas dodawania roli do playbooka lub poprzez –extra-vars z terminala.

Ta zmienna jest domyślnie pusta.

::

Dodawanie z terminala.

ansible localhost -m include_role -a name=constrict0r.sourcez -K -e
"{repozytoria: [{
name: multimedia,
repo: 'deb http://www.debian-multimedia.org sid main'
}]}}"

Dodawanie do playbooka.

Do playbooka z terminala.

ansible-playbook -i inventory my-playbook.yml -K -e
"{repozytoria: [{
name: multimedia,
repo: 'deb http://www.debian-multimedia.org sid main'
}]}}"

konfiguracja

Absolutna ścieżka pliku lub URL do pliku .yml, który zawiera wszystkie lub niektóre zmienne obsługiwane przez tę rolę.

Zaleca się używanie rozszerzenia .yml lub .yaml dla pliku konfiguracja.

Ta zmienna jest domyślnie pusta.

::

Używając ścieżki pliku.

ansible localhost -m include_role -a name=constrict0r.sourcez -K -e
"konfiguracja=/home/username/my-config.yml"

Używając URL.

ansible localhost -m include_role -a name=constrict0r.sourcez -K -e
"konfiguracja=https://my-url/my-config.yml"

Aby zobaczyć, jak zapisać plik konfiguracyjny, zobacz sekcję formatu pliku YAML.

YAML


Podczas przekazywania plików konfiguracyjnych do tej roli jako parametrów, zaleca się dodanie rozszerzenia .yml lub .yaml do każdego pliku.

Zaleca się również dodanie trzech kresek na górze każdego pliku:

::


Możesz dodać do pliku zmienne wymagane dla swoich zadań:

::


repozytoria: - [{name: multimedia, repo: 'deb http://www.debian-multimedia.org sid main'}]

Jeśli chcesz, aby ta rola ładowała listę elementów z plików i URL, możesz ustawić zmienną expand na true:

::


repozytoria: /home/username/my-config.yml

expand: true

Jeśli zmienna expand jest false, każda ścieżka pliku lub URL zostanie potraktowana jak zwykły tekst.

Atrybuty


Na poziomie elementu możesz używać atrybutów do konfigurowania tego, jak ta rola obsługuje dane elementów.

Obsługiwane przez tę rolę atrybuty to:

item_expand

Wartość logiczna wskazująca, czy traktować ten element jako ścieżkę pliku lub URL, czy po prostu jako zwykły tekst.

::


repozytoria: - item_expand: true item_path: /home/username/my-config.yml

item_path

Absolutna ścieżka pliku lub URL do pliku .yml.

::


repozytoria: - item_path: /home/username/my-config.yml

Ten atrybut działa również z adresami URL.

Wymagania


  • Ansible <https://www.ansible.com>_ >= 2.8.

  • Jinja2 <https://palletsprojects.com/p/jinja/>_.

  • Pip <https://pypi.org/project/pip/>_.

  • Python <https://www.python.org/>_.

  • PyYAML <https://pyyaml.org/>_.

  • Requests <https://2.python-requests.org/en/master/>_.

Jeśli chcesz przeprowadzić testy, potrzebujesz również:

  • Docker <https://www.docker.com/>_.

  • Molecule <https://molecule.readthedocs.io/>_.

  • Setuptools <https://pypi.org/project/setuptools/>_.

Kompatybilność


  • Debian Buster <https://wiki.debian.org/DebianBuster>_.

  • Debian Raspbian <https://raspbian.org/>_.

  • Debian Stretch <https://wiki.debian.org/DebianStretch>_.

  • Ubuntu Xenial <http://releases.ubuntu.com/16.04/>_.

Licencja


MIT. Zobacz plik LICENSE, aby uzyskać więcej szczegółów.

Linki


  • Github <https://github.com/constrict0r/sourcez>_.

  • Gitlab <https://gitlab.com/constrict0r/sourcez>_.

  • Gitlab CI <https://gitlab.com/constrict0r/sourcez/pipelines>_.

  • Readthedocs <https://sourcez.readthedocs.io>_.

  • Travis CI <https://travis-ci.com/constrict0r/sourcez>_.

UML


Wdrożenie

Pełna struktura projektu przedstawiona poniżej:

.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/deploy.png :alt: wdrożenie

Główne

Schemat przepływu danych w projekcie przedstawiony poniżej:

.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/main.png :alt: główne

Autor


.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/author.png :alt: autor

Wędrowny Złoczyńca Vaudeville.

Ciesz się!!!

.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/enjoy.png :alt: ciesz się

Zainstaluj
ansible-galaxy install constrict0r.sourcez
Licencja
mit
Pobrania
2k
Właściciel
The Traveling Vaudeville Villain Gitlab: gitlab.com/constrict0r - Blog: geekl0g.wordpress.com - Twitter: twitter.com/constrict0r - Functional Café: is.gd/YDqy