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
Rôle Ansible pour ajouter des dépôts aux sources apt.
.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/avatar.png :alt: avatar
Documentation complète sur Readthedocs <https://sourcez.readthedocs.io>
_.
Code source sur :
Github <https://github.com/constrict0r/sourcez>
_.
Gitlab <https://gitlab.com/constrict0r/sourcez>
_.
Partie de : <https://gitlab.com/explore/projects?tag=doombot>
_
.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/doombot.png :alt: doombot
Ingrédients
.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/ingredient.png :alt: ingredient
Contenu
Description <#Description>
_Utilisation <#Usage>
_Variables <#Variables>
_dépôts <#repositories>
_configuration <#configuration>
_
YAML <#YAML>
_Attributs <#Attributes>
_item_expand <#item-expand>
_item_path <#item-path>
_
Exigences <#Requirements>
_Compatibilité <#Compatibility>
_Licence <#License>
_Liens <#Links>
_UML <#UML>
_Déploiement <#deployment>
_Principal <#main>
_
Auteur <#Author>
_
Description
Rôle Ansible pour ajouter des dépôts apt aux sources apt.
Ce rôle effectue les actions suivantes :
Assure que les exigences sont installées.
Assure que l'utilisateur actuel peut obtenir des permissions administratives (root).
Si la variable dépôts est définie, ajoute aux sources apt les dépôts qui y sont listés.
Si la variable configuration est définie, ajoute aux sources apt les dépôts qui y sont listés.
Utilisation
- Pour installer et exécuter :
..
::
ansible-galaxy install constrict0r.sourcez
ansible localhost -m include_role -a name=constrict0r.sourcez -K
- Passer des variables :
..
::
ansible localhost -m include_role -a name=constrict0r.sourcez -K \
-e "{dépôts: [{nom: multimedia, repo: 'deb http://www.debian-multimedia.org sid main'}]}"
- Pour inclure le rôle dans un playbook :
..
::
- hosts: serveurs
roles:
- {role: constrict0r.sourcez}
- Pour inclure le rôle comme dépendance dans un autre rôle :
..
::
dependencies:
- role: constrict0r.sourcez
dépôts: [{nom: multimedia, repo: 'deb http://www.debian-multimedia.org sid main'}]
- Pour utiliser le rôle depuis des tâches :
..
::
- name: Exécuter la tâche du rôle.
import_role:
name: constrict0r.sourcez
vars:
dépôts: [{nom: multimedia, repo: 'deb http://www.debian-multimedia.org sid main'}]
Pour exécuter des tests :
::
cd sourcez chmod +x testme.sh ./testme.sh
Pour certains tests, vous devrez peut-être utiliser sudo pour réussir.
Variables
Les variables suivantes sont supportées :
dépôts
Liste des dépôts à ajouter aux sources apt.
Cette liste peut être modifiée en passant un tableau dépôts lors de l'inclusion du rôle dans un playbook ou via –extra-vars depuis un terminal.
Cette variable est vide par défaut.
::
Inclusion depuis le terminal.
ansible localhost -m include_role -a name=constrict0r.sourcez -K -e
"{dépôts: [{
nom: multimedia,
repo: 'deb http://www.debian-multimedia.org sid main'
}]}}"
Inclusion dans un playbook.
- hosts: serveurs
roles:
- role: constrict0r.sourcez
dépôts:
- nom: multimedia repo: deb http://www.debian-multimedia.org sid main
- role: constrict0r.sourcez
dépôts:
Pour un playbook depuis le terminal.
ansible-playbook -i inventory my-playbook.yml -K -e
"{dépôts: [{
nom: multimedia,
repo: 'deb http://www.debian-multimedia.org sid main'
}]}}"
configuration
Chemin absolu ou URL vers un fichier .yml qui contient toutes ou certaines des variables supportées par ce rôle.
Il est recommandé d'utiliser une extension .yml ou .yaml pour le fichier configuration.
Cette variable est vide par défaut.
::
Utilisation d'un chemin de fichier.
ansible localhost -m include_role -a name=constrict0r.sourcez -K -e
"configuration=/home/nom_utilisateur/ma-config.yml"
Utilisation d'une URL.
ansible localhost -m include_role -a name=constrict0r.sourcez -K -e
"configuration=https://mon-url/ma-config.yml"
Pour voir comment écrire un fichier de configuration, consultez la section sur le format de fichier YAML.
YAML
Lorsque vous passez des fichiers de configuration à ce rôle comme paramètres, il est recommandé d'ajouter une extension .yml ou .yaml à chaque fichier.
Il est également recommandé d'ajouter trois traits au début de chaque fichier :
::
Vous pouvez inclure dans le fichier les variables requises pour vos tâches :
::
dépôts: - [{nom: multimedia, repo: 'deb http://www.debian-multimedia.org sid main'}]
Si vous voulez que ce rôle charge la liste d'éléments à partir de fichiers et d'URLs, vous pouvez définir la variable expand sur true :
::
dépôts: /home/nom_utilisateur/ma-config.yml
expand: true
Si la variable expand est false, tout chemin de fichier ou URL trouvé sera traité comme du texte brut.
Attributs
Au niveau des éléments, vous pouvez utiliser des attributs pour configurer la manière dont ce rôle traite les données des éléments.
Les attributs supportés par ce rôle sont :
item_expand
Valeur booléenne indiquant si traiter cet élément comme un chemin de fichier ou une URL ou simplement le traiter comme du texte brut.
::
dépôts: - item_expand: true item_path: /home/nom_utilisateur/ma-config.yml
item_path
Chemin de fichier absolu ou URL vers un fichier .yml.
::
dépôts: - item_path: /home/nom_utilisateur/ma-config.yml
Cet attribut fonctionne également avec des URL.
Exigences
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/>
_.
Si vous souhaitez exécuter les tests, vous aurez également besoin de :
Docker <https://www.docker.com/>
_.Molecule <https://molecule.readthedocs.io/>
_.Setuptools <https://pypi.org/project/setuptools/>
_.
Compatibilité
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/>
_.
Licence
MIT. Voir le fichier LICENSE pour plus de détails.
Liens
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
Déploiement
La structure complète du projet est montrée ci-dessous :
.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/deploy.png :alt: deploy
Principal
Le flux de données du projet est montré ci-dessous :
.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/main.png :alt: main
Auteur
.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/author.png :alt: author
Le Vilain Voyageur de Vaudeville.
Amusez-vous!!!
.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/enjoy.png :alt: enjoy
Add apt repositories to Debian sources.
ansible-galaxy install constrict0r.sourcez