chouseknecht.cluster-up-role

Statut de Build

cluster-up-role

Installez le client OpenShift et créez une instance locale en utilisant oc cluster up.

Ce projet a été créé pour répondre aux besoins de démonstration et de test d'Ansible Container en automatisant les tâches du guide d'installation et de configuration d'OpenShift.

Il réalise spécifiquement les tâches suivantes :

  • Télécharge et installe le client oc
  • Installe socat, si vous êtes sur OSX
  • Ajoute un nom d'hôte associé à votre adresse IP publique dans /etc/hosts
  • Démarre le cluster
  • Accorde des droits d'administrateur du cluster au compte developer
  • Crée une route pour exposer le registre local
  • Crée un volume persistant
  • Utilise le client oc pour se connecter au cluster en tant que developer et définit le projet sur default

Plateformes supportées et tests

À ce jour, ce rôle a principalement été testé sur OSX en utilisant Docker pour Mac. Il fonctionne également presque sur Travis, qui est une plateforme Ubuntu. Gardez donc cela à l'esprit : si vous essayez de l'utiliser en dehors de OSX, vous risquez de rencontrer un bug. Si c'est le cas, merci d'ouvrir un problème ou de soumettre une PR, afin que nous puissions mettre à jour le rôle.

Nom d'hôte

Par défaut, le nom d'hôte local.openshift est ajouté à votre fichier /etc/hosts et associé à votre adresse IP actuelle. Utilisez le paramètre openshift_hostname si vous préférez un autre nom.

Lorsque le cluster est créé, il est associé à votre adresse IP réseau locale. Si vous utilisez un ordinateur portable ou un autre appareil mobile, vous pourriez devoir recréer le cluster chaque fois que vous passez à un nouveau réseau. Créer un nom d'hôte associé à votre adresse IP réelle rend la vie un peu moins compliquée.

Registre non sécurisé

Si vous n'avez pas ajouté l'option de registre non sécurisé à Docker, le rôle renverra une erreur la première fois que vous l'exécutez. Un message vous indiquera le sous-réseau à ajouter. Vous devrez également ajouter la valeur openshift_hostname. Par défaut, cette valeur est local.openshift. Après avoir effectué la modification et redémarré Docker, exécutez à nouveau le rôle, et cette fois tout fonctionnera.

Prérequis

Vous devez avoir les éléments suivants installés :

  • Docker Engine ou Docker pour Mac
  • Accès sudo pour mettre à jour /etc/hosts et installer le binaire oc dans /usr/local/bin.

REMARQUE : Si vous utilisez une plateforme Linux, assurez-vous de suivre les instructions pour créer un groupe docker, afin de pouvoir exécuter des commandes docker directement sans utiliser sudo.

Exemple de Playbook

Lorsque vous exécutez le rôle, assurez-vous de bien laisser gather_facts défini sur une valeur vraie. Sans ces faits, le rôle ne peut pas déterminer l'adresse IP de l'hôte ni la famille d'OS.

Voici un exemple de playbook qui inclut tous les paramètres par défaut. Vous trouverez cet exemple exact dans files/cluster-up.yml. Copiez-le et ajustez-le pour l'adapter à votre environnement.

    ---
    - hosts: localhost
      remote_user: root
      connection: local
      gather_facts: yes
      roles:
        - role: chouseknecht.cluster-up-role
          openshift_github_user: openshift
          openshift_github_name: origin
          openshift_github_url: https://api.github.com/repos
          openshift_release_tag_name: ""
          openshift_client_dest: /usr/local/bin  
          openshift_force_client_install: yes
          openshift_volume_name: project-data
          openshift_volume_path: "{{ lookup('env','HOME') }}/volumes/project/data"
          openshift_hostname: local.openshift
          openshift_recreate: yes

Après avoir installé le rôle, copiez file/cluster-up.yml dans votre répertoire projet et exécutez-le avec l'option --ask-sudo-pass. Voici un exemple :

# Installer le rôle 
$ ansible-galaxy install chouseknecht.cluster-up-role

# Copier le playbook depuis votre chemin de rôles vers le répertoire de travail actuel 
$ cp ${ANSIBLE_ROLES_PATH}/chouseknecht.cluster-up-role/files/cluster-up.yml .

# Créer un fichier d'inventaire pour localhost
$ echo "localhost">./inventory

# Exécuter le playbook
$ ansible-playbook -i inventory --ask-sudo-pass cluster-up.yml

Déploiement de votre projet Ansible Container

Dans l'exemple suivant, nous allons créer un nouveau projet, installer le rôle Container Enabled jenkins-container, et déployer le service Jenkins sur notre cluster OpenShift local.

REMARQUE : pour exécuter cet exemple, vous devez installer Ansible Container 0.3.0. Consultez Installation à partir de la source si vous avez besoin d'aide.

# Créer un nouveau dossier de projet
$ mkdir jenkins

# Définir le répertoire de travail
$ cd jenkins

# Init du projet
$ ansible-container init

# Installer le rôle jenkins-container
$ ansible-container install awasilyev.jenkins-container

# Construire les images
$ ansible-container build

# Générer le playbook de déploiement et le rôle
$ ansible-container shipit openshift --local-images

# Définir le répertoire de travail sur ansible
$ cd ansible

# Exécuter le playbook shipit
$ ansible-playbook shipit-openshift.yml

Cela a créé un nouveau projet sur OpenShift appelé jenkins. Pour voir le projet, connectez-vous à la console OpenShift en ouvrant https://local.openshift:8443/console. Le nom d'utilisateur est developer et le mot de passe est developer. Cliquez sur jenkins pour voir l'aperçu du projet.

Cliquez sur l'image suivante pour regarder une vidéo du déploiement du service Jenkins :

Déployer Jenkins

Variables du rôle

Utilisez les variables suivantes pour modifier le comportement du rôle :

openshift_github_user: openshift

Le propriétaire du dépôt GitHub où se trouvent les cibles de téléchargement du client oc

openshift_github_name: origin

Le nom du dépôt GitHub

openshift_github_url: https://api.github.com/repos

L'URL de l'API GitHub à utiliser.

openshift_release_tag_name: ""

Le tag pour la version désirée du binaire oc. Si non fourni, la version la plus récente sera installée.

openshift_client_dest: /usr/local/bin

Le répertoire où oc sera installé. Doit être dans votre PATH.

openshift_force_client_install: yes

Si le binaire oc existe déjà, doit-il être écrasé ?

openshift_volume_name: project-data

Nom du volume.

openshift_volume_path: "{{ lookup('env','HOME') }}/volumes/project/data"

Un chemin local où de l'espace sera alloué pour le nouveau volume.

openshift_hostname: local.openshift

Le nom d'hôte que vous utiliserez pour référencer le registre local lorsque vous serez prêt à pousser des images.

openshift_recreate: yes

Si un cluster fonctionne déjà, doit-il être arrêté et recréé ?

openshift_up_options: ''

Ajoutez toutes les options que vous souhaitez passer à oc cluster up. Séparez plusieurs options par un espace, tout comme vous le feriez en ligne de commande.

Dépendances

Aucune

License

Apache v2

Auteur

@chouseknecht

À propos du projet

Install the latest oc client and create a local OpenShift cluster using `oc cluster up`.

Installer
ansible-galaxy install chouseknecht.cluster-up-role
Licence
apache-2.0
Téléchargements
159
Propriétaire
Ansible Galaxy Engineering Manager