constrict0r.jsnode
jsnode
.. image:: https://gitlab.com/constrict0r/jsnode/badges/master/pipeline.svg :alt: pipeline
.. image:: https://travis-ci.com/constrict0r/jsnode.svg :alt: travis
.. image:: https://readthedocs.org/projects/jsnode/badge :alt: readthedocs
Rola Ansible do użycia jako nakładka dla Yarn <https://yarnpkg.com/>
_, aby
zainstalować pakiety nodejs.
.. image:: https://gitlab.com/constrict0r/img/raw/master/jsnode/avatar.png :alt: avatar
Pełna dokumentacja jest dostępna na Readthedocs <https://jsnode.readthedocs.io>
_.
Kod źródłowy znajduje się na:
Github <https://github.com/constrict0r/jsnode>
_.
Gitlab <https://gitlab.com/constrict0r/jsnode>
_.
Część: <https://gitlab.com/explore/projects?tag=doombot>
_
.. image:: https://gitlab.com/constrict0r/img/raw/master/jsnode/doombot.png :alt: doombot
Składniki
.. image:: https://gitlab.com/constrict0r/img/raw/master/jsnode/ingredient.png :alt: ingredient
Spis treści
Opis <#Opis>
_Użycie <#Użycie>
_Zmienne <#Zmienne>
_packages_js <#packages-js>
_configuration <#configuration>
_
YAML <#YAML>
_Atrybuty <#Atrybuty>
_item_expand <#item-expand>
_item_path <#item-path>
_
Wymagania <#Wymagania>
_Kompatybilność <#Kompatybilność>
_Ograniczenia <#Ograniczenia>
_Licencja <#Licencja>
_Linki <#Linki>
_UML <#UML>
_Wdrożenie <#wdrożenie>
_Główne <#główne>
_
Autor <#Autor>
_
Opis
Rola Ansible do użycia jako nakładka dla yarn <https://yarnpkg.com/>
_, aby
zainstalować pakiety nodejs.
Ta rola wykonuje następujące działania:
Upewnia się, że wymagania są zainstalowane.
Upewnia się, że bieżący użytkownik może uzyskać uprawnienia administracyjne (root).
Jeśli nie został już dodany, dodaje repozytorium nodejs do źródeł apt.
Jeśli nie jest zainstalowany, instaluje nodejs.
Jeśli zmienna packages_js jest zdefiniowana, instaluje pakiety javascript wymienione w niej.
Jeśli zmienna configuration jest zdefiniowana, instaluje pakiety javascript wymienione w niej.
Użycie
- Aby zainstalować i uruchomić:
..
::
ansible-galaxy install constrict0r.jsnode
ansible localhost -m include_role -a name=constrict0r.jsnode -K
- Przekazywanie zmiennych:
..
::
ansible localhost -m include_role -a name=constrict0r.jsnode -K \
-e "{packages_js: [node-red, {name: requests, version: 2.22.0}]}"
- Aby dołączyć rolę do playbooka:
..
::
- hosts: servers
roles:
- {role: constrict0r.jsnode}
- Aby dołączyć rolę jako zależność w innej roli:
..
::
dependencies:
- role: constrict0r.jsnode
packages_js: [node-red, {name: requests, version: 2.22.0}]
- Aby użyć roli w zadaniach:
..
::
- name: Wykonaj zadanie roli.
import_role:
name: constrict0r.jsnode
vars:
packages_js: [node-red, {name: requests, version: 2.22.0}]
Aby uruchomić testy:
::
cd jsnode chmod +x testme.sh ./testme.sh
W niektórych testach może być konieczne użycie sudo, aby zakończyć proces pomyślnie.
Zmienne
Obsługiwane zmienne:
packages_js
Lista pakietów do zainstalowania za pomocą yarn.
Ta lista może być modyfikowana przez przekazanie tablicy packages_js podczas dołączania roli do playbooka lub za pomocą –extra-vars z terminala.
Jeśli chcemy zainstalować konkretną wersję pakietu, należy określić atrybuty name i version dla pakietu.
Ta zmienna jest domyślnie pusta.
::
Dołączanie z terminala.
ansible localhost -m include_role -a name=constrict0r.jsnode -K -e
"{packages_js: [node-red, {name: requests, version: 2.22.0}]}"
Dołączanie do playbooka.
- hosts: servers
roles:
- role: constrict0r.jsnode
packages_js:
- node-red
- name: requests version: 2.22.0
- role: constrict0r.jsnode
packages_js:
Do playbooka z terminala.
ansible-playbook -i inventory my-playbook.yml -K -e
"{packages_js: [node-red, {name: requests, version: 2.22.0}]}"
configuration
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życie rozszerzenia .yml lub .yaml dla pliku configuration.
Ta zmienna jest domyślnie pusta.
::
Użycie ścieżki do pliku.
ansible localhost -m include_role -a name=constrict0r.jsnode -K -e
"configuration=/home/username/my-config.yml"
Użycie URL.
ansible localhost -m include_role -a name=constrict0r.jsnode -K -e
"configuration=https://my-url/my-config.yml"
Aby dowiedzieć się, jak napisać plik konfiguracyjny, zobacz sekcję dotyczącą formatu plików 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 myślników na początku każdego pliku:
::
Możesz dołączyć w pliku zmienne wymagane do twoich zadań:
::
packages_js: - [node-red, {name: requests, version: 2.22.0}]
Jeśli chcesz, aby ta rola załadowała listę elementów z plików i URL, możesz ustawić zmienną expand na true:
::
packages_js: /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, jak ta rola obsługuje dane elementu.
Atrybuty obsługiwane przez tę rolę to:
item_expand
Wartość logiczna wskazująca, czy traktować ten element jako ścieżkę pliku lub URL, czy jako zwykły tekst.
::
packages_js: - item_expand: true item_path: /home/username/my-config.yml
item_path
Absolutna ścieżka pliku lub URL do pliku .yml.
::
packages_js: - item_path: /home/username/my-config.yml
Ten atrybut działa również z 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 uruchomić testy, potrzebujesz także:
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/>
_.
Ograniczenia
Ta rola używa najnowszej wersji nodejs Active LTS, co działa dobrze w większości przypadków.
Pakiety są instalowane globalnie.
Licencja
MIT. Zobacz plik LICENSE, aby uzyskać więcej szczegółów.
Linki
Github <https://github.com/constrict0r/jsnode>
_.Gitlab <https://gitlab.com/constrict0r/jsnode>
_.Gitlab CI <https://gitlab.com/constrict0r/jsnode/pipelines>
_.Readthedocs <https://jsnode.readthedocs.io>
_.Travis CI <https://travis-ci.com/constrict0r/jsnode>
_.
UML
Wdrożenie
Pełna struktura projektu jest pokazana poniżej:
.. image:: https://gitlab.com/constrict0r/img/raw/master/jsnode/deploy.png :alt: wdrożenie
Główne
Przepływ danych projektu jest pokazany poniżej:
.. image:: https://gitlab.com/constrict0r/img/raw/master/jsnode/main.png :alt: główne
Autor
.. image:: https://gitlab.com/constrict0r/img/raw/master/jsnode/author.png :alt: autor
Podróżujący Vodeville Złoczyńca.
Ciesz się!!!
.. image:: https://gitlab.com/constrict0r/img/raw/master/jsnode/enjoy.png :alt: ciesz się
Wrapper for Yarn to install packages.
ansible-galaxy install constrict0r.jsnode