MySQL を vSphere CentOS マシンにインストールするために、ソフトウェア アーキテクトの権限を使用して MySQL ソフトウェア コンポーネントを作成します。CentOS 仮想マシン用の MySQL ソフトウェア コンポーネントを設計する場合は、Linux オペレーティング システム用のインストール、構成、開始パラメータ、およびスクリプトを構成します。

手順

  1. 設計 > ソフトウェア コンポーネント を選択します。
  2. 新規 アイコン(追加)をクリックします。
  3. 名前 テキスト ボックスに MySQL for Linux Virtual Machines と入力します。
  4. 指定した名前に基づいて ID が割り当てられることを確認します。

    例:Software.MySQLforLinuxVirtualMachines

  5. 説明 テキスト ボックスに MySQL installation and configuration と入力します。
  6. コンテナ ドロップダウン メニューから マシン を選択します。

    MySQL だけをマシンに直接インストールするため、アーキテクトが MySQL ソフトウェア コンポーネントを他のソフトウェア コンポーネントの上にドロップすることを禁止します。

  7. 次へ をクリックします。
  8. 新規 をクリックし、インストール スクリプトの次のプロパティをそれぞれ追加および構成します。

    OK をクリックして、各プロパティを保存します。

    アーキテクトは、申請フォームでユーザーに表示するように ソフトウェア プロパティを設定できます。アーキテクトは [申請に表示] オプションを使用すると、オーバーライド可能としてマークしたプロパティの値をユーザーが入力するように要求または要請できます。

    名前

    説明

    タイプ

    暗号化済み

    オーバーライドを許可

    必須

    計算値

    db_root_username

    データベースの root ユーザー名

    文字列

    root

    いいえ

    はい

    はい

    いいえ

    JAVA_HOME

    JRE 1.8 以降のインストール先ディレクトリ

    文字列

    /opt/vmware-jre

    いいえ

    はい

    はい

    いいえ

    global_ftp_proxy

    FTP プロキシ URL(該当する場合)。省略可能。

    文字列

    いいえ

    はい

    いいえ

    いいえ

    db_port

    MySQL データベース ポート

    文字列

    いいえ

    はい

    はい

    いいえ

    db_root_password

    データベースの root ユーザー パスワード

    文字列

    パスワード

    はい

    はい

    はい

    いいえ

    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. OK をクリックします。
  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. OK をクリックします。
  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. OK をクリックします。
  13. 次へ をクリックします。
  14. 終了 をクリックします。
  15. MySQL for Linux Virtual Machines を含む行を選択し、公開 をクリックします。

タスクの結果

MySQL ソフトウェア コンポーネントは、ブループリント デザイン ページの他のアーキテクトも利用できますが、マシンに統合するまでは ソフトウェア コンポーネントを利用可能にすることはできません。

次のタスク

ソフトウェア アーキテクト、アプリケーション アーキテクト、または IaaS アーキテクトの権限を使用して、ソフトウェア マシン ブループリント用の CentOS に MySQL コンポーネントを統合します。