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.