stackhpc.os-container-infra
Clusters de Conteneurs OpenStack
Ce rôle peut être utilisé pour manipuler un cluster de conteneurs dans Magnum en utilisant le client Python de Magnum.
Exigences
- python 2.6+
- openstacksdk
- python-magnumclient
- python-heatclient
- python-novaclient
Variables du Rôle
os_container_infra_cloud
est le nom du cloud (configuré dans cloud.yaml, optionnel).
os_container_infra_user
est le nom de l'utilisateur SSH, par exemple fedora.
os_container_infra_state
doit être soit présent, absent, interroger ou mettre à niveau.
os_container_infra_cluster_name
est le nom du cluster.
os_container_infra_cluster_template_name
est le modèle de cluster à utiliser pour le cluster.
os_container_infra_keypair
est la clé utilisée pour accéder aux nœuds du cluster.
os_container_infra_master_count
est le nombre de nœuds maîtres.
os_container_infra_node_count
est le nombre de nœuds de travail.
os_container_infra_default_interface
est le réseau par défaut à utiliser pour accéder au cluster.
os_container_infra_interfaces
est une liste de réseaux supplémentaires à connecter aux nœuds du cluster.
os_container_infra_inventory
est la destination où l'inventaire sera sauvegardé.
os_container_infra_environment_group
est un nom de groupe Ansible optionnel au
quel tous les hôtes du cluster et localhost seront ajoutés. Cela peut être utile s'il y a un seul groupe qui représente un environnement tel que
développement/staging/production.
os_container_infra_coe
est le moteur d'orchestration de conteneurs à utiliser. Les options valides sont kubernetes
ou swarm
.
os_container_infra_k8s_version
est une version configurabile de Kubernetes à utiliser lorsque os_container_infra_state = upgrade
.
Exemple de Playbook
Le playbook suivant crée un cluster, attache deux interfaces aux serveurs du cluster et crée un fichier d'inventaire en utilisant les informations d'authentification disponibles dans les variables d'environnement (qui est le comportement par défaut) :
---
- hosts: localhost
become: False
gather_facts: False
roles:
- role: stackhpc.os-container-infra
os_container_infra_user: fedora
os_container_infra_state: present
os_container_infra_cluster_name: k8s
os_container_infra_cluster_template_name: k8s-fa29
os_container_infra_roles:
- name: storage_client
groups: ["{{ os_container_infra_worker_group }}"]
os_container_infra_keypair: bharat
os_container_infra_default_interface: default
os_container_infra_master_group:
- name: master
count: 1
os_container_infra_worker_group:
- name: minion
count: 2
...
Pour s'authentifier en utilisant les informations passées via le playbook, fournir une variable dictionnaire comme suit :
os_container_infra_auth:
auth_url: http://10.60.253.1:5000
project_name: p3
username: username
password: password
user_domain_name: Default
project_domain_name: Default
region_name: RegionOne
Pour s'authentifier en utilisant les informations stockées dans
.config/openstack/clouds.yaml
ou /etc/openstack/clouds.yaml
, qui peut être
généré en utilisant notre rôle stackhpc.os-config
, ajouter ce qui suit :
os_container_infra_auth_type: cloud
os_container_infra_cloud: mycloud
Pour les mises à niveau du cluster Kubernetes :
---
- hosts: cluster
gather_facts: False
become: yes
roles:
- role: stackhpc.os-container-infra
os_container_infra_state: upgrade
os_container_infra_k8s_version: v1.13.4
os_container_infra_coe: kubernetes
...
Informations de Débogage Ansible
Pour voir les avertissements émis par ce rôle, exportez la variable suivante avant de lancer Ansible :
export ANSIBLE_LOG_PATH=ansible.log
export ANSIBLE_DEBUG=1
Pour filtrer ces avertissements :
tail -f ansible.log | grep DEBUG
Problèmes Connus
Le module template
d'Ansible écrit un fichier d'inventaire et peut se plaindre
du manque de libselinux-python
, qui est déjà installé dans la plupart des distributions Linux. Si c'est le cas, créez simplement un lien symbolique vers le répertoire selinux dans
votre environnement virtuel existant :
ln -s /usr/lib64/python2.7/site-packages/selinux/ venv/lib64/python2.7/site-packages/
Pour un nouvel environnement virtuel :
virtualenv --system-site-packages venv
Licence
Apache 2
Informations sur l'Auteur
- Bharat Kunwar (bharat@stackhpc.com)
ansible-galaxy install stackhpc.os-container-infra