Utilizzando i privilegi di architetto software, creare un componente Software MySQL su macchine vSphere CentOS. Quando si progetta il componente software Software MySQL per una macchina virtuale CentOS, si configurano i parametri di installazione, configurazione e avvio e gli script per i sistemi operativi Linux.

Prerequisiti

Procedura

  1. Selezionare Progettazione > Componenti software.
  2. Fare clic sull'icona Nuovo (Aggiungi).
  3. Immettere MySQL for Linux Virtual Machines nella casella di testo Nome.
  4. Verificare che l'identificatore venga compilato in base al nome fornito.

    Ad esempio, Software.MySQLforLinuxVirtualMachines

  5. Immettere MySQL installation and configuration nella casella di testo Descrizione.
  6. Selezionare Macchina dal menu a discesa Contenitore.

    Poiché si intende consentire solo l'installazione di MySQL direttamente su una macchina, è necessario impedire agli architetti di rilasciare il componente Software MySQL su altri componenti Software.

  7. Fare clic su Avanti.
  8. Fare clic su Nuovo, quindi aggiungere e configurare ciascuna delle proprietà seguenti per lo script di installazione.

    Fare clic su OK per salvare ciascuna proprietà.

    Gli architetti possono configurare le proprietà Software da visualizzare per gli utenti nel modulo di richiesta. Per richiedere che gli utenti compilino i valori per le proprietà contrassegnate come sovrascrivibili, gli architetti possono usare l'opzione Mostra nella richiesta.

    Nome

    Descrizione

    Tipo

    Valore

    Codificato

    Consenti sovrascrittura

    Obbligatorio

    Valore elaborato

    db_root_username

    Nome utente root del database

    Stringa

    root

    No

    No

    JAVA_HOME

    Directory in cui è installato JRE 1.8 o versione successiva

    Stringa

    /opt/vmware-jre

    No

    No

    global_ftp_proxy

    Eventuale URL del proxy FTP. Non obbligatorio.

    Stringa

    No

    No

    No

    db_port

    Porta del database MySQL

    Stringa

    No

    No

    db_root_password

    Password dell'utente root del database

    Stringa

    password

    No

    global_http_proxy

    Eventuale URL del proxy HTTP. Non obbligatorio.

    Stringa

    No

    No

    No

    global_https_proxy

    Eventuale URL del proxy HTTPS. Non obbligatorio.

    Stringa

    No

    No

    No

    max_allowed_packet_size

    Dimensione massima del pacchetto consentita per il server

    Integer

    1024

    No

    No

    No

  9. Fare clic su Avanti.
  10. Configurare l'azione di installazione.
    1. Selezionare Bash dal menu a discesa Tipo di script.
    2. Fare clic su Fare clic qui per modificare.
    3. Incollare il seguente script.
      #!/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. Fare clic su OK.
  11. Specificare l'azione di configurazione.
    1. Selezionare Bash dal menu a discesa Tipo di script.
    2. Fare clic su Fare clic qui per modificare.
    3. Incollare il seguente script.
      #!/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. Fare clic su OK.
  12. Configurare l'azione di avvio.
    1. Selezionare Bash dal menu a discesa Tipo di script.
    2. Fare clic su Fare clic qui per modificare.
    3. Incollare il seguente script.
      #!/bin/sh
      
      echo "The maximum allowed packet size is: "
      
       
    4. Posizionare il cursore tra i due punti e la virgoletta.
    5. Selezionare max_allowed_packet_size dal menu a discesa Selezionare una proprietà da inserire.

      Lo script contiene ora la proprietà.

      #!/bin/sh
      
      echo "The maximum allowed packet size is: $max_allowed_packet_size" 
      
       
    6. Fare clic su OK.
  13. Fare clic su Avanti.
  14. Fare clic su Fine.
  15. Selezionare la riga contenente MySQL for Linux Virtual Machines e fare clic su Pubblica.

Risultati

Il componente Software MySQL è disponibile per gli altri architetti nella pagina di progettazione del blueprint, ma non è possibile renderle disponibili componenti Software fino a quando non li si è combinati a una macchina.

Operazioni successive

Utilizzando i privilegi di architetto software, architetto applicazione o architetto IaaS, combinare il componente MySQL con il blueprint della macchina CentOS for Software. Vedere Scenario: assemblaggio e test di un blueprint per la fornitura di macchine di cloni collegati MySQL su Rainpole.