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

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ę

Zainstaluj
ansible-galaxy install constrict0r.jsnode
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