À l'aide de vos privilèges d'architecte de logiciel, créez un composant Logiciel MySQL pour installer MySQL sur des machines CentOS vSphere. Lorsque vous concevez le composant Logiciel MySQL pour une machine virtuelle CentOS, configurez les paramètres d'installation, de configuration et de démarrage, ainsi que les scripts des systèmes d'exploitation Linux.

Procédure

  1. Sélectionnez Conception > Composants logiciels.
  2. Cliquez sur l'icône Nouveau (Ajouter).
  3. Dans la zone de texte Nom, entrez MySQL pour les machines virtuelles Linux.
  4. Vérifiez que l'identifiant s'affiche automatiquement en fonction du nom fourni avec le nom fourni.

    Par exemple, Software.MySQLforLinuxVirtualMachines.

  5. Dans la zone de texte Description, entrez Installation et configuration de MySQL.
  6. Dans le menu déroulant Conteneur, sélectionnez Machine.

    Si vous souhaitez uniquement que MySQL soit installé directement sur une machine, limitez la quantité de composants Logiciel MySQL que les architectes peuvent déposer sur d'autres composants Logiciel.

  7. Cliquez sur Suivant.
  8. Cliquez sur Nouveau et sur Ajouter, puis configurez chacune des propriétés suivantes du script d'installation.

    Cliquez sur OK pour enregistrer chaque propriété.

    Les architectes peuvent configurer les propriétés Logiciel afin qu'elles apparaissent dans le formulaire de demande des utilisateurs. Les architectes peuvent utiliser l'option Afficher dans la demande pour obliger les utilisateurs à remplir les valeurs des propriétés que vous marquez en tant que remplaçables, ou leur demander de le faire.

    Nom

    Description

    Type

    Valeur

    Chiffré

    Autoriser le remplacement

    Obligatoire

    Calculées

    db_root_username

    Nom de l'utilisateur racine de la base de données

    Chaîne

    root

    Non

    Oui

    Oui

    Non

    JAVA_HOME

    Répertoire d'installation de JRE 1.8 ou version ultérieure

    Chaîne

    /opt/vmware-jre

    Non

    Oui

    Oui

    Non

    global_ftp_proxy

    URL du proxy FTP (le cas échéant). Non requis.

    Chaîne

    Non

    Oui

    Non

    Non

    db_port

    Port de la base de données MySQL

    Chaîne

    Non

    Oui

    Oui

    Non

    db_root_password

    Mot de passe de l'utilisateur racine de la base de données

    Chaîne

    mot de passe

    Oui

    Oui

    Oui

    Non

    global_http_proxy

    URL du proxy HTTP (le cas échéant). Non requis.

    Chaîne

    Non

    Oui

    Non

    Non

    global_https_proxy

    URL du proxy HTTPS (le cas échéant). Non requis.

    Chaîne

    Non

    Oui

    Non

    Non

    max_allowed_packet_size

    Taille de paquet maximale autorisée pour le serveur

    Integer

    1024

    Non

    Oui

    Non

    Non

  9. Cliquez sur Suivant.
  10. Configurez l'action Installer.
    1. Dans le menu déroulant Type de script, sélectionnez Bash.
    2. Cliquez sur Cliquez ici pour modifier.
    3. Collez le script suivant.
      #!/bin/bash
      
      #Setting proxies
      export ftp_proxy=${ftp_proxy:-$global_ftp_proxy}
      echo "Setting ftp_proxy to $ftp_proxy"
      
      export http_proxy=${http_proxy:-$global_http_proxy}
      echo "Setting http_proxy to $http_proxy"
      
      export https_proxy=${https_proxy:-$global_https_proxy}
      echo "Setting https_proxy to $https_proxy"
      
      #
      # Determine operating system and version 
      #
      export OS=
      export OS_VERSION=
      
      if [ -f /etc/redhat-release ]; then
          # For CentOS the result will be 'CentOS'
          # For RHEL the result will be 'Red'
          OS=$(cat /etc/redhat-release | awk {'print $1'})
      
          if [ -n $OS ] && [ $OS = 'CentOS' ]; then
              OS_VERSION=$(cat /etc/redhat-release | awk '{print $3}')
          else
              # RHEL
              OS_VERSION=$(cat /etc/redhat-release | awk '{print $7}')
          fi
      
      elif [ -f /etc/SuSE-release ]; then
          OS=SuSE
      
          MAJOR_VERSION=$(cat /etc/SuSE-release | grep VERSION | awk '{print $3}')
          PATCHLEVEL=$(cat /etc/SuSE-release | grep PATCHLEVEL | awk '{print $3}')
      
          OS_VERSION="$MAJOR_VERSION.$PATCHLEVEL"
      
      elif [ -f /usr/bin/lsb_release ]; then
          # For Ubuntu the result is 'Ubuntu'
          OS=$(lsb_release -a 2> /dev/null | grep Distributor | awk '{print $3}')
          OS_VERSION=$(lsb_release -a 2> /dev/null | grep Release | awk '{print $2}')
      
      fi
      
      echo "Using operating system '$OS' and version '$OS_VERSION'"
      
      if [ "x${global_http_proxy}" == "x" ] || [ "x${global_https_proxy}" == "x" ] ||
         [ "x${global_ftp_proxy}" == "x" ]; then
         echo ""
         echo "###############################################################"
         echo "#  One or more PROXY(s) not set. Network downloads may fail   #"
         echo "###############################################################"
         echo ""
      fi
      
      export PATH=$PATH:$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
      set -e
      
      # Tested on CentOS
      if [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then
          # SELinux can be disabled by setting "/usr/sbin/setenforce Permissive"
          echo 'SELinux in enabled on this VM template.  This service requires SELinux to be disabled to install successfully'
          exit 1
      fi
      
      if [ "x$OS" != "x" ] && [ "$OS" = 'Ubuntu' ]; then
          # Fix the linux-firmware package 
          export DEBIAN_FRONTEND=noninteractive
          apt-get install -y linux-firmware < /dev/console > /dev/console 
          # Install MySQL package 
          apt-get install -y mysql-server
      else 
          yum --nogpgcheck --noplugins -y install -x MySQL-server-community mysql-server
      fi
      
      # Set Install Path to the default install path (For monitoring)
      Install_Path=/usr
      echo Install_Path is set to $Install_Path, please modify this script if the install path is not correct.
    4. Cliquez sur OK.
  11. Configurez l'action Configurer.
    1. Dans le menu déroulant Type de script, sélectionnez Bash.
    2. Cliquez sur Cliquez ici pour modifier.
    3. Collez le script suivant.
      #!/bin/bash
      
      #Setting proxies
      export ftp_proxy=${ftp_proxy:-$global_ftp_proxy}
      echo "Setting ftp_proxy to $ftp_proxy"
      
      export http_proxy=${http_proxy:-$global_http_proxy}
      echo "Setting http_proxy to $http_proxy"
      
      export https_proxy=${https_proxy:-$global_https_proxy}
      echo "Setting https_proxy to $https_proxy"
      
      #
      # Determine operating system and version 
      #
      export OS=
      export OS_VERSION=
      
      if [ -f /etc/redhat-release ]; then
          # For CentOS the result will be 'CentOS'
          # For RHEL the result will be 'Red'
          OS=$(cat /etc/redhat-release | awk {'print $1'})
      
          if [ -n $OS ] && [ $OS = 'CentOS' ]; then
              OS_VERSION=$(cat /etc/redhat-release | awk '{print $3}')
          else
              # RHEL
              OS_VERSION=$(cat /etc/redhat-release | awk '{print $7}')
          fi
      
      elif [ -f /etc/SuSE-release ]; then
          OS=SuSE
      
          MAJOR_VERSION=$(cat /etc/SuSE-release | grep VERSION | awk '{print $3}')
          PATCHLEVEL=$(cat /etc/SuSE-release | grep PATCHLEVEL | awk '{print $3}')
      
          OS_VERSION="$MAJOR_VERSION.$PATCHLEVEL"
      
      elif [ -f /usr/bin/lsb_release ]; then
          # For Ubuntu the result is 'Ubuntu'
          OS=$(lsb_release -a 2> /dev/null | grep Distributor | awk '{print $3}')
          OS_VERSION=$(lsb_release -a 2> /dev/null | grep Release | awk '{print $2}')
      
      fi
      
      echo "Using operating system '$OS' and version '$OS_VERSION'"
      
      if [ "x${global_http_proxy}" == "x" ] || [ "x${global_https_proxy}" == "x" ] ||
         [ "x${global_ftp_proxy}" == "x" ]; then
         echo ""
         echo "###############################################################"
         echo "#  One or more PROXY(s) not set. Network downloads may fail   #"
         echo "###############################################################"
         echo ""
      fi
      
      export PATH=$PATH:$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
      set -e
      
      # Locate the my.cnf file 
      my_cnf_file=
      if [ -f /etc/my.cnf ]; then 
          my_cnf_file=/etc/my.cnf
      elif [ -f /etc/mysql/my.cnf ]; then 
          my_cnf_file=/etc/mysql/my.cnf
      fi
      
      if [ "x$my_cnf_file" = "x" ]; then 
          echo "Neither /etc/my.cnf nor /etc/mysql/my.cnf can be found, stopping configuration"
          exit 1
      fi
      
      # update mysql configuration to handle big packets
      sed -ie "s/\[mysqld\]/\[mysqld\]\n\
      max_allowed_packet=$max_allowed_packet/g" $my_cnf_file
      # update listening port
      sed -ie "s/\[mysqld\]/\[mysqld\]\n\
      port=$db_port/g" $my_cnf_file
      
      sed -i "s/port.*=.*[0-9]*/port=$db_port/g" $my_cnf_file
      
      if [ "x$OS" != "x" ] && [ "$OS" = 'Ubuntu' ]; then
          # Make sure that MySQL is started 
          service mysql restart
      else 
          # set up auto-start on booting
          chkconfig mysqld on
          # restart mysqld service
          service mysqld start
      fi
      
      # this will assign a password for mysql admin user 'root'
      mysqladmin -u $db_root_username password $db_root_password
       
    4. Cliquez sur OK.
  12. Configurez l'action Démarrer.
    1. Dans le menu déroulant Type de script, sélectionnez Bash.
    2. Cliquez sur Cliquez ici pour modifier.
    3. Collez le script suivant.
      #!/bin/sh
      
      echo "The maximum allowed packet size is: "
      
       
    4. Positionnez le curseur entre les deux-points et le guillemet anglais.
    5. Dans le menu déroulant Sélectionner une propriété à insérer, sélectionnez max_allowed_packet_size.

      Le script inclut désormais la propriété.

      #!/bin/sh
      
      echo "The maximum allowed packet size is: $max_allowed_packet_size" 
      
       
    6. Cliquez sur OK.
  13. Cliquez sur Suivant.
  14. Cliquez sur Terminer.
  15. Sélectionnez la ligne qui contient MySQL pour les machines virtuelles Linux, puis cliquez sur Publier.

Résultats

Votre composant Logiciel MySQL est accessible par les autres architectes sur la page de conception du Blueprint, mais vous ne pouvez pas rendre les composants Logiciel disponibles tant que vous ne les combinez pas à une machine.

Que faire ensuite

À l'aide de vos privilèges d'architecte de logiciels, d'architecte d'applications ou d'architecte IaaS, combinez votre composant MySQL au Blueprint de machine CentOS for Software.