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
  1. 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_64
    subscription-manager repos --enable=rhel-7-server-rpms
  • rhel-7-server-rpms/7Server/x86_64
    subscription-manager repos --enable=rhel-7-server-extras-rpms
  • rhel-7-server-rt-rpms/7Server/x86_64
    subscription-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 :
  1. Ajoutez le serveur de noms de domaine (DNS)"<LOCALIP>" dans le dossier /etc/resolv.conf.
    LocalIP
    ici 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 status
      NetworkManager
    • systemctl status
      snsmasq
  2. Si les services ne sont pas activés et en cours d'exécution, exécutez les commandes suivantes :
    yum -y install NetworkManager
    yum -y install dnsmasq
    service NetworkManager start
    service dnsmasq start
  3. Exécutez les commandes suivantes sur tous les hôtes de noeuds principaux et de travail :
    yum -y update
    subscription-manager repos --enable rhel-7-server-ansible-2.5-rpms
    yum -y install vim wget git net-tools bind-utils iptables-services bridge-utils bash-completion pyOpenSSL docker
    yum -y install ansible
  4. Activez et démarrez le Docker sur les noeuds principaux et de travail.
  5. 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 sshd
    ssh-keygen
    for host in master.example.com \
    node1.example.com \
    node2.example.com; \
    do ssh-copy-id -i ~/.ssh/id_rsa.pub $host; \
    done
    Lors 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.
  6. Clonez le référentiel Git pour la version OpenShift sur le nœud principal uniquement.
    cd ~ ; git clone https://github.com/openshift/openshift-ansible
    cd openshift-ansible
    git checkout release-1.5
  7. 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>
    par
    l'adresse IP de noeud principal/noeud de travail correspondante
    .
    [OSEv3:children]
    masters
    nodes
    etcd
    [OSEv3:vars]
    ansible_ssh_user=root
    deployment_type=origin
    openshift_disable_check=docker_storage
    containerized=true
    openshift_release=v1.5
    openshift_image_tag=v1.5.0
    osm_cluster_network_cidr=10.163.0.0/16
    enable_excluders=false
    openshift_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>
  8. 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
  9. 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
  10. Pour lancer des rapports Jasper, exécutez la commande
    jdbc: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 :
  1. 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>
  2. 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
  3. 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:admin
    oc project <project-name>
    ip = oc get svc -n default | grep docker-registry|awk '{print $2;}'
  4. 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 registre
    docker login -u openshift -p $(oc whoami -t) <ip>:5000
  5. 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
  6. 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:admin
    oadm policy add-scc-to-group anyuid system:authenticated
  7. Pour lancer des rapports Jasper, exécutez la commande
    jdbc:mysql://<openshiftnode>:<nodeport-ephemeral port>/reporting
    .
    Par exemple, jdbc:mysql://<nom_serveur_principal>:45673/reporting
Commandes générales
  1. Pour obtenir les information de conteneur pour OpenShift, exécutez la commande suivante :
    oc get pods
    NAME READY STATUS RESTARTS AGE
    blog-django-py-1-5bv76 1/1 Running 0 3d
    command-demo 1/1 Running 0 2h
    t3image-1-4991j 1/1 Running 0 4h
  2. 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 :
  1. Copiez le package vers le docker ///host>container, en utilisant la commande 'docker copy <filename> <containerName:/path>’
  2. 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 1032ocimage
    Pour 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 1032ocimage
    Ici, 9443 est le numéro de port utilisé par WebApp, une fois le conteneur OC créé.
  3. Lancez WebApp Spectrum en utilisant l'URL suivante :
    http://dockerHost:9099