Installation de OpenShift
Les étapes d'installation sont les suivantes :
casp1032
Installation de OpenShift Docker pour un serveur Distributed SpectroSERVER.
Assurez-vous que vous disposez d'au moins deux VM, une comme VMe de noeud principal et l'autre comme VM de noeud de travail. Par la suite, vous pouvez mettre à l'échelle le nombre de VM.
Conditions préalables
- Assurez-vous que tous les ordinateurs disposent d'un gestionnaire d'abonnement Red Hat. Assurez-vous que les référentiels suivants sont activés. Pour activer les référentiels, exécutez les commandes suivantes :
- subscription-manager config --rhsm.manage_repos =1
- rhel-7-server-extras-rpms/x86_64subscription-manager repos --enable=rhel-7-server-rpms
- rhel-7-server-rpms/7Server/x86_64subscription-manager repos --enable=rhel-7-server-extras-rpms
- rhel-7-server-rt-rpms/7Server/x86_64subscription-manager repos --enable=rhel-7-server-optional-rpms
Procédure d'installation
Obligatoire
: root_pwd sur tous les VM contenues dans le cluster Openshift doivent être identiques. Openshift peut créer un ou plusieurs conteneurs sur un nœud/une VM et, par conséquent, avoir le même mot de passe sur toutes les VM.Les étapes d'installation sont les suivantes :
- Ajoutez le serveur de noms de domaine (DNS)"<LOCALIP>" dans le dossier /etc/resolv.conf.LocalIPici fait référence à l'adresse IP du serveur DNS. Ignorez cette étape s'il est déjà configuré. Les services suivants sur tous les noeuds principaux et de travail doivent être activés et en cours d'exécution.
- systemctl statusNetworkManager
- systemctl statussnsmasq
- Si les services ne sont pas activés et en cours d'exécution, exécutez les commandes suivantes :yum -y install NetworkManageryum -y install dnsmasqservice NetworkManager startservice dnsmasq start
- Exécutez les commandes suivantes sur tous les hôtes de noeuds principaux et de travail :yum -y updatesubscription-manager repos --enable rhel-7-server-ansible-2.5-rpmsyum -y install vim wget git net-tools bind-utils iptables-services bridge-utils bash-completion pyOpenSSL dockeryum -y install ansible
- Activez et démarrez le Docker sur les noeuds principaux et de travail.
- Configurez les clés SSH pour accéder à tous les noeuds. Effectuez cette étape sur le NOEUR PRINCIPAL. Effectuez cette étape manuellement ou utilisez le script mentionné ci-dessous.sed "s/#PermitRootLogin yes/PermitRootLogin yes/g" -i /etc/ssh/sshd_config ; systemctl restart sshdssh-keygenfor host in master.example.com \node1.example.com \node2.example.com; \do ssh-copy-id -i ~/.ssh/id_rsa.pub $host; \doneLors de l'exécution du playbook Ansible à partir du noeud principal, ssh-copyid doit être également être exécuté d'un noeud principal vers un noeud principal pour que le playbook fonctionne pour localhost.
- Clonez le référentiel Git pour la version OpenShift sur le nœud principal uniquement.cd ~ ; git clone https://github.com/openshift/openshift-ansiblecd openshift-ansiblegit checkout release-1.5
- Créez le fichier hosts dans "/etc/Ansible/hosts" pour le noeud principal uniquement.Remplacez<master.com>par<nom hôte noeud principal>et remplacez<worker.com>par <nom hôte noeud de travail>Remplacez<adresss>parl'adresse IP de noeud principal/noeud de travail correspondante.[OSEv3:children]mastersnodesetcd[OSEv3:vars]ansible_ssh_user=rootdeployment_type=originopenshift_disable_check=docker_storagecontainerized=trueopenshift_release=v1.5openshift_image_tag=v1.5.0osm_cluster_network_cidr=10.163.0.0/16enable_excluders=falseopenshift_master_identity_providers=[{'name': 'htpasswd_auth','login': 'true', 'challenge': 'true','kind': 'HTPasswdPasswordIdentityProvider','filename': '/etc/origin/master/htpasswd'}][masters]<master.com> openshift_ip=<address> openshift_public_ip=<address> openshift_public_hostname=<master.com> openshift_schedulable=true[nodes]<master.com> openshift_ip=<address> openshift_public_ip=<address> openshift_public_hostname=<master.com> openshift_node_labels="{'region': 'infra', 'zone': 'default'}" openshift_schedulable=true<worker.com> openshift_ip=<address> openshift_public_ip=<address> openshift_public_hostname=<worker.com> openshift_node_labels="{'region': 'primary', 'zone': 'east'}" openshift_schedulable=true[etcd]<master.com>
- Exécutez la commande d'installation de playbook Ansible suivante pour le noeud principal uniquement :ansible-playbook -i /etc/ansible/hosts ~/openshift-ansible/playbooks/byo/config.yml
- Connectez-vous à l'interface utilisateur OpenShift à l'aide de l'URL 'https://<masterhostname>:8443' (8443 étant le numéro de port par défaut) et entrez les informations d'identification admin/admin ou system/admin. Si vous souhaitez créer vos propres informations d'identification racines, exécutez la commande suivante sur le noeud principal et définissez un nouveau mot de passe pour la racine.htpasswd /etc/origin/master/htpasswd root
- Pour lancer des rapports Jasper, exécutez la commandejdbc:mysql://<openshiftnode>:<nodeport-ephemeral port>/reporting.Par exemple, jdbc:mysql://<nom_serveur_principal>:45673/reporting
Tâches de post-installation
Effectuez les tâches postérieures à l'installation suivantes :
- Créez un projet dans OpenShift à l'aide de l'interface utilisateur OpenShift ou en exécutant la commande suivante sur le noeud principal OpenShift :oc new-project <projectname>
- Créez un référentiel d'images docker local dans le cluster OpenShift pour que les images Spectrum puissent y être injectées et soient accessibles globalement dans l'ensemble du cluster. Pour créer un référentiel docker local sur OpenShift, exécutez la commande suivante sur le noeud principal :vi /etc/docker/daemon.json{"insecure-registries" : ["master.com:5000"]}Remplacez"master.com"par "nom hôte noeud principal"Pour déployer/créer un référentiel docker local :oc rollout latest docker-registry
- Nous aurons besoin l'addresse IP du service (serviceip) du registre de docker créé à l'étape précité pour y injecter les images Spectrum. Pour obtenir l'adresse IP du service du registre local docker créé. Cette étape est obligatoire pour OpenShift afin que la commande d'extraction de service fonctionne.oc login -u system:adminoc project <project-name>ip = oc get svc -n default | grep docker-registry|awk '{print $2;}'
- Après avoir extrait l'adresse IP du registre docker, connectez-vous à OpenShift à l'aide des informations d'identification définies par l'utilisateur. Post que nous devrons enregistrer au registre docker.oc login -u <username>:<pwd>Connexion au service de registredocker login -u openshift -p $(oc whoami -t) <ip>:5000
- Après vous être connecté, marquez et envoyez l'image dans le référentiel Docker local :docker tag spectrumspectroserverimage <ip>:5000/<project-name>/ssocsimage docker push <ip>:5000/<project-name>/spectrumspectroserverimage
- La commande pour les modifications apportées à la configuration pour autoriser l'exécution des images en tant qu'utilisateur RACINE*** :Cette étape est obligatoire pour l'exécution de l'image. Ici "admin" est le principal privilège d'administration.oc login -u system:adminoadm policy add-scc-to-group anyuid system:authenticated
- Pour lancer des rapports Jasper, exécutez la commandejdbc:mysql://<openshiftnode>:<nodeport-ephemeral port>/reporting.Par exemple, jdbc:mysql://<nom_serveur_principal>:45673/reporting
Commandes générales
- Pour obtenir les information de conteneur pour OpenShift, exécutez la commande suivante :oc get podsNAME READY STATUS RESTARTS AGEblog-django-py-1-5bv76 1/1 Running 0 3dcommand-demo 1/1 Running 0 2ht3image-1-4991j 1/1 Running 0 4h
- Commande de connexion à un conteneur OpenShift :oc exec -it command-demo – sh
Dépannage
Q : OneClick WebApp n’est pas pris en charge dans docker.
R : Pour résoudre les problèmes, procédez comme suit :
- Copiez le package vers le docker ///host>container, en utilisant la commande 'docker copy <filename> <containerName:/path>’
- Après avoir copié le fichier vers le conteneur, installez le package à l’aide de "yum localinstall pkgName". Lors de la création du conteneur, créez un mappage de ports similaire à celui utilisé pour le port OneClick, comme indiqué dans l'exemple ci-dessous :docker run -e ROOT_PASSWORD=???.qaperf184 -e MAIN_LOCATION_SERVER=719de9a39c46 -e MAIN_LOCATION_SERVER_IP=172.17.0.2-e TOMCAT_PORT=8080-p 9090:8080-e MASTER_NODE=docker-rh74vm2 -it 1032ocimagePour OneClick WebApp :docker run -e ROOT_PASSWORD=???.qaperf184 -e MAIN_LOCATION_SERVER=719de9a39c46 -e MAIN_LOCATION_SERVER_IP=172.17.0.2-e TOMCAT_PORT=8080-p 9090:8080 -p 9099:9443-e MASTER_NODE=docker-rh74vm2 -it 1032ocimageIci, 9443 est le numéro de port utilisé par WebApp, une fois le conteneur OC créé.
- Lancez WebApp Spectrum en utilisant l'URL suivante :http://dockerHost:9099