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: creazione di un contenitore per il blueprint Rainpole MySQL su CentOS.