目次

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

スタートアップスクリプトを利用することでサーバーの追加時にあらかじめ設定したコマンド操作などを自動的に実行することができます。

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


コントロールパネルでスタートアップスクリプトを使用してサーバーを追加する方法は下記でご案内しています。

スタートアップスクリプト使ってサーバーを追加する

スクリプトの作成方法

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

cloud-config形式

#cloud-config

merge_how:
  - name: list
    settings: [append]
  - name: dict
    settings: [no_replace, recurse_list]

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

merge_how:
  - name: list
    settings: [append]
  - name: dict
    settings: [no_replace, recurse_list]

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

問題は解決できましたか?

お役立ち情報

ConoHaではサポートコンテンツの他にも以下のようなお役立ち情報をご用意しております。ぜひご活用ください。