Usando seus privilégios de arquiteto de software, crie um componente de Software MySQL para instalar o MySQL em máquinas vSphere CentOS. Ao projetar o componente Software MySQL para uma máquina virtual CentOS, você configura a instalação, a configuração, os parâmetros de início e os scripts para sistemas operacionais Linux.

Pré-requisitos

Procedimento

  1. Selecione Design > Componentes de software.
  2. Clique no ícone Novo (Adicionar).
  3. Insira MySQL para Máquinas Virtuais Linux na caixa de texto Nome.
  4. Verifique se o identificador é preenchido com base no nome fornecido.
    Por exemplo, Software.MySQLforLinuxVirtualMachines
  5. Insira Instalação e configuração do MySQL na caixa de texto Descrição.
  6. Selecione Máquina no menu suspenso Contêiner.
    Como você só quer que o MySQL seja instalado diretamente em uma máquina, restrinja os arquitetos de descartar o seu componente do Software MySQL por cima de outros componentes do Software.
  7. Clique em Avançar.
  8. Clique em Novo e adicione e configure cada uma das propriedades a seguir para o script de instalação.
    Clique em OK para salvar cada propriedade.
    Os arquitetos podem configurar suas propriedades do Software para mostrar aos usuários no formulário de solicitação. Eles podem usar a opção Mostrar na Solicitação para exigir ou solicitar que os usuários preencham valores para as propriedades que você marcar como substituíveis.
    Nome Descrição Tipo Valor Criptografado Permitir Substituição Necessário Computada
    db_root_username Nome do usuário na raiz do banco de dados Cadeia de caracteres raiz Não Sim Sim Não
    JAVA_HOME O diretório no qual o JRE 1.8 ou posterior está instalado Cadeia de caracteres /opt/vmware-jre Não Sim Sim Não
    global_ftp_proxy URL do proxy do FTP, se houver. Não é obrigatório. Cadeia de caracteres Não Sim Não Não
    db_port Porta do banco de dados MySQL Cadeia de caracteres Não Sim Sim Não
    db_root_password Senha do usuário na raiz do banco de dados Cadeia de caracteres senha Sim Sim Sim Não
    global_http_proxy URL do proxy do HTTP, se houver. Não é obrigatório. Cadeia de caracteres Não Sim Não Não
    global_https_proxy URL do proxy do HTTPS, se houver. Não é obrigatório. Cadeia de caracteres Não Sim Não Não
    max_allowed_packet_size Tamanho máximo do pacote permitido no servidor Inteiro 1024 Não Sim Não Não
  9. Clique em Avançar.
  10. Configure a ação Instalar.
    1. Selecione Bash no menu suspenso Tipo de script.
    2. Clique em Clique aqui para editar.
    3. Cole o seguinte 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. Clique em OK.
  11. Configure a ação Configurar.
    1. Selecione Bash no menu suspenso Tipo de script.
    2. Clique em Clique aqui para editar.
    3. Cole o seguinte 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. Clique em OK.
  12. Configure a ação Iniciar.
    1. Selecione Bash no menu suspenso Tipo de script.
    2. Clique em Clique aqui para editar.
    3. Cole o seguinte script.
      #!/bin/sh
      
      echo "The maximum allowed packet size is: "
      
       
    4. Coloque o cursor entre os dois pontos e as aspas.
    5. Selecione max_allowed_packet_size no menu suspenso Selecionar uma propriedade para ser inserida.
      Agora o script inclui a propriedade.
      #!/bin/sh
      
      echo "The maximum allowed packet size is: $max_allowed_packet_size" 
      
       
    6. Clique em OK.
  13. Clique em Avançar.
  14. Clique em Concluir.
  15. Selecione a linha que contém MySQL para Máquinas Virtuais Linux e clique em Publicar.

Resultados

Seu componente de Software MySQL está disponível para outros arquitetos na página de design do blueprint, mas você apenas poderá disponibilizar componentes de Software depois de combiná-los com uma máquina.

O que Fazer Depois

Usando seus privilégios de arquiteto de software, arquiteto de aplicativos ou arquiteto de IaaS, combine seu componente MySQL com o blueprint de máquina CentOS para Software. Consulte Cenário: criar um contêiner para o blueprint do Rainpole do MySQL no CentOS.