ConoHaカードを購入するとVPSが最大1ヶ月無料! 7/4(火)まで
ドキュメント
  • ご利用ガイド
  • スタートアップスクリプトを作成する

    スタートアップスクリプトを作成する

    スタートアップスクリプトを作成する

    スタートアップスクリプトを利用することでAPIでのVPS作成時にあらかじめ設定したコマンド操作などを自動的に実行することができます。スタートアップスクリプトによって「yumコマンドを実行しあらかじめ必要なアプリケーションをインストールする」「ユーザー追加をする」等のVPS作成時に行う初期設定を自動的に行うことができます。

    スタートアップスクリプトを使用してVPSを作成する際は下記のAPIコマンドを使用します。

    APIドキュメント - VM追加

    ここではスタートアップスクリプトの作成の例を紹介します。

    スクリプトを作成する

    VPS作成時に一般ユーザーを追加し、rootユーザのsshログインを禁止する場合のスタートアップスクリプトの一例を紹介します。(cloud-config形式とシェルスクリプト形式の2パターンを紹介します。)

    cloud-config形式

    #cloud-config
    
    users:
      - default
      - name: "作成したいユーザー名"
        groups: wheel
    
    runcmd:
      - echo "作成したユーザーに設定したいパスワード" | passwd --stdin "作成したいユーザー名"
      - sed -i /etc/ssh/sshd_config -e "s/PermitRootLogin yes/PermitRootLogin no/g"
      - sed -i /etc/ssh/sshd_config -e "s/#PermitRootLogin yes/PermitRootLogin no/g"
      - sed -i /etc/ssh/sshd_config -e "s/#PermitRootLogin no/PermitRootLogin no/g"
      - systemctl restart sshd

    シェルスクリプト形式

    #!/bin/sh
    
    USERNAME='作成したいユーザー名'
    PASSWORD='作成したユーザーに設定するパスワード'
    
    useradd -m -G wheel -s /bin/bash "${USERNAME}"
    echo "${PASSWORD}" | passwd --stdin "${USERNAME}"
    
    sed -e "s/PermitRootLogin yes/PermitRootLogin no/g" -i /etc/ssh/sshd_config
    sed -e "s/#PermitRootLogin yes/PermitRootLogin no/g" -i /etc/ssh/sshd_config
    sed -e "s/#PermitRootLogin no/PermitRootLogin no/g" -i /etc/ssh/sshd_config
    
    systemctl restart sshd

    次にyum upgradeを実行し、Dockerをインストールするスタートアップスクリプトの例を紹介します。

    cloud-config形式

    #cloud-config
    
    runcmd:
      - yum -y upgrade
      - yum -y install docker
      - systemctl enable --now docker
      - docker swarm join --token SWARM_TOKEN SWARM_MASTERNODE_IPADDRESS

    シェルスクリプト形式

    #!/bin/sh
    
    yum -y upgrade
    yum -y install docker
    systemctl enable --now docker
    docker swarm join --token SWARM_TOKEN SWARM_MASTERNODE_IPADDRESS

    作成したスクリプトをエンコードする

    APIでVPSを作成する際にスタートアップスクリプトを利用する場合、あらかじめスクリプトをbase64 encodeする必要があります。

    ここでは一例として作成したスクリプトをCentOS7を使用してエンコードする方法を紹介します。

    # base64 <ファイル名>
    
    #下記のような結果が返ってきます。
    IyEvYmluL2Jhc2****************************************************************************

    以上でスタートアップスクリプトが用意できましたので、APIを利用してVPSを追加してみましょう。

    今すぐお申し込み