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.
- hosts: serwery
roles:
- role: constrict0r.sourcez
repozytoria:
- name: multimedia repo: deb http://www.debian-multimedia.org sid main
- role: constrict0r.sourcez
repozytoria:
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ę
Add apt repositories to Debian sources.
ansible-galaxy install constrict0r.sourcez