소프트웨어 설계자 권한을 사용하여 MySQL Software 구성 요소를 생성하고 vSphere CentOS 시스템에 MySQL을 설치합니다. CentOS 가상 시스템의 MySQL Software 구성 요소를 설계할 때 Linux 운영 체제를 위한 설치, 구성, 시작 매개 변수와 스크립트를 구성합니다.

시작하기 전에

프로시저

  1. 설계 > 소프트웨어 구성 요소를 선택합니다.
  2. 새로 만들기 아이콘(추가)을 클릭합니다.
  3. 이름 텍스트 상자에 MySQL for Linux Virtual Machines를 입력합니다.
  4. 제공된 이름에 따라 식별자가 채워지는지 확인합니다.

    예를 들어 Software.MySQLforLinuxVirtualMachines와 같이 채워질 수 있습니다.

  5. 설명 텍스트 상자에 MySQL installation and configuration을 입력합니다.
  6. 컨테이너 드롭다운 메뉴에서 시스템을 선택합니다.

    MySQL을 시스템에 직접 설치하려는 경우이므로 설계자가 MySQL Software 구성 요소를 다른 Software 구성 요소 위에 놓지 못하도록 제한합니다.

  7. 다음을 클릭합니다.
  8. 새로 만들기를 클릭하고 설치 스크립트의 다음 속성 각각을 추가하고 구성합니다.

    각 속성을 저장하려면 확인을 클릭합니다.

    설계자는 요청 양식에서 사용자에게 표시되도록 Software 속성을 구성할 수 있습니다. 설계자는 [요청에서 표시] 옵션을 사용하여 [재정의 가능]으로 표시한 속성의 값을 사용자가 채우도록 설정 또는 요청할 수 있습니다.

    이름

    설명

    유형

    암호화됨

    재정의 허용

    필요

    계산

    db_root_username

    데이터베이스 루트 사용자 이름

    문자열

    root

    아니요

    아니요

    JAVA_HOME

    JRE 1.7이 설치된 디렉토리

    문자열

    /opt/vmware-jre

    아니요

    아니요

    global_ftp_proxy

    FTP 프록시 URL(있는 경우). 필요하지 않음.

    문자열

    아니요

    아니요

    아니요

    db_port

    MySQL 데이터베이스 포트

    문자열

    아니요

    아니요

    db_root_password

    데이터베이스 루트 사용자 암호

    문자열

    암호

    아니요

    global_http_proxy

    HTTP 프록시 URL(있는 경우). 필요하지 않음.

    문자열

    아니요

    아니요

    아니요

    global_https_proxy

    HTTPS 프록시 URL(있는 경우). 필요하지 않음.

    문자열

    아니요

    아니요

    아니요

    max_allowed_packet_size

    서버에서 허용하는 최대 패킷 크기

    Integer

    1024

    아니요

    아니요

    아니요

  9. 다음을 클릭합니다.
  10. 설치 작업을 구성합니다.
    1. 스크립트 유형 드롭다운 메뉴에서 Bash를 선택합니다.
    2. 편집하려면 여기를 클릭하십시오.를 클릭합니다.
    3. 다음 스크립트를 붙여 넣습니다.
      #!/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. 확인을 클릭합니다.
  11. 구성 작업을 구성합니다.
    1. 스크립트 유형 드롭다운 메뉴에서 Bash를 선택합니다.
    2. 편집하려면 여기를 클릭하십시오.를 클릭합니다.
    3. 다음 스크립트를 붙여 넣습니다.
      #!/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. 확인을 클릭합니다.
  12. 시작 작업을 구성합니다.
    1. 스크립트 유형 드롭다운 메뉴에서 Bash를 선택합니다.
    2. 편집하려면 여기를 클릭하십시오.를 클릭합니다.
    3. 다음 스크립트를 붙여 넣습니다.
      #!/bin/sh
      
      echo "The maximum allowed packet size is: "
      
       
    4. 콜론과 따옴표 사이에 커서를 둡니다.
    5. 삽입할 속성 선택 드롭다운 메뉴에서 max_allowed_packet_size를 선택합니다.

      이제 스크립트에 속성이 포함되었습니다.

      #!/bin/sh
      
      echo "The maximum allowed packet size is: $max_allowed_packet_size" 
      
       
    6. 확인을 클릭합니다.
  13. 다음을 클릭합니다.
  14. 마침을 클릭합니다.
  15. MySQL for Linux Virtual Machines가 들어 있는 행을 선택하고 게시를 클릭합니다.

결과

[Blueprint 설계] 페이지에서 MySQL Software 구성 요소를 다른 설계자가 사용할 수 있지만 이렇게 하려면 우선 Software 구성 요소를 시스템과 결합해야 합니다.

다음에 수행할 작업

소프트웨어 설계자, 애플리케이션 설계자 또는 IaaS 설계자 권한을 사용하여 MySQL 구성 요소를 소프트웨어 시스템용 CentOS Blueprint와 결합합니다. 시나리오: Blueprint를 구성 및 테스트하여 Rainpole 연결된 복제 시스템에서 MySQL 제공 항목을 참조하십시오.