ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 システムのインストール Oracle Solaris 11.1 Information Library (日本語) |
パート I Oracle Solaris 11.1 のインストールオプション
6. Oracle Solaris インスタンスの構成解除または再構成
スクリプトにどのソースを使用できるかを知るためには、初回ブート時にどのツールがクライアントシステムにインストールされているかを知る必要があります。デフォルトでは、solaris-large-server パッケージがインストールされています。そのグループパッケージをインストールした場合は、Python、bash、ksh、およびその他のツールが初回ブート時に使用可能です。solaris-large-server グループパッケージに含まれるパッケージの完全なリストについては、『Oracle Solaris 11.1 ソフトウェアパッケージの追加および更新』の「グループパッケージ内のすべてのインストール可能なパッケージの一覧表示」で説明されているように、pkg contents コマンドを使用します。solaris-large-server パッケージに用意されていないソースをスクリプトに使用する場合は、必要なパッケージを特定し、それを AI マニフェストに指定します。インストールする可能性がある他のパッケージの名前を検索する方法については、『Oracle Solaris 11.1 ソフトウェアパッケージの追加および更新』を参照してください。
ヒント -
異なるスクリプト内のそれぞれのコマンドが互いに競合しないようにするため、使用する初回ブートスクリプトは 1 つのみにしてください。
初回ブートスクリプト内ではリブートしないでください。
例 13-1 テンプレート初回ブートスクリプト
この例は、初回ブートスクリプトで実行すべき操作を示しています。
初回ブートスクリプトでは、SMF メソッドの終了コードなどの定義を使用するために /lib/svc/share/smf_include.sh を読み込む必要があります。
スクリプトでは、前のブートですでに実行されたかどうかを検査するようにしてください。completed プロパティーがすでに true に設定されている場合は、start メソッドを終了し、サービスを一時的に無効にします。
スクリプトの次の行は、site/first-boot-script-svc:default サービスインスタンスの config プロパティーグループ内の completed プロパティーの値を取得し、その値をローカルの completed 変数に割り当てます。
completed=`svcprop -p config/completed site/first-boot-script-svc:default`
スクリプトの次の行は、SMF_EXIT_TEMP_DISABLE 終了コードとともに、終了の簡単な理由として method_completed、および終了の理由を示す長い説明として "Configuration completed" をサービスの start メソッドに送ります。
smf_method_exit $SMF_EXIT_TEMP_DISABLE script_completed "Configuration completed"
初回ブートスクリプトでは、AI インストールによって作成されたばかりのブート環境 (BE) のコピーを保存するようにしてください。初回ブートスクリプトで変更される前に BE のコピーを保存しておくと、スクリプトによって何らかの問題が発生した場合に、保存された BE にブートするだけで簡単に回復できます。
スクリプトでは、その作業が完了したときに、completed プロパティーの値を true に設定し、新しいプロパティー値でサービスをリフレッシュし、start メソッドを終了してサービスを一時的に無効にする必要があります。svccfg コマンドを使用して completed プロパティーを true に設定し、svcadm コマンドを使用してサービスをリフレッシュします。
デフォルトでは sh が ksh93 であることを覚えておいてください。
#!/bin/sh # Load SMF shell support definitions . /lib/svc/share/smf_include.sh # If nothing to do, exit with temporary disable completed=`svcprop -p config/completed site/first-boot-script-svc:default` [ "${completed}" = "true" ] && \ smf_method_exit $SMF_EXIT_TEMP_DISABLE completed "Configuration completed" # Obtain the active BE name from beadm: The active BE on reboot has an R in # the third column of 'beadm list' output. Its name is in column one. bename=`beadm list -Hd|nawk -F ';' '$3 ~ /R/ {print $1}'` beadm create ${bename}.orig echo "Original boot environment saved as ${bename}.orig" # Place your one-time configuration tasks here # Record that this script's work is done svccfg -s site/first-boot-script-svc:default setprop config/completed = true svcadm refresh site/first-boot-script-svc:default smf_method_exit $SMF_EXIT_TEMP_DISABLE method_completed "Configuration completed"
例 13-2 複数の IP インタフェースを構成する初回ブートスクリプト
この例は、2 つの IP インタフェースのアドレスを構成し、デフォルトルートを追加する first-boot-script.sh という名前の初回ブートスクリプトを示しています。
#!/bin/sh # Load SMF shell support definitions . /lib/svc/share/smf_include.sh # If nothing to do, exit with temporary disable completed=`svcprop -p config/completed site/first-boot-script-svc:default` [ "${completed}" = "true" ] && \ smf_method_exit $SMF_EXIT_TEMP_DISABLE completed "Configuration completed" # Obtain the active BE name from beadm: The active BE on reboot has an R in # the third column of 'beadm list' output. Its name is in column one. bename=`beadm list -Hd|nawk -F ';' '$3 ~ /R/ {print $1}'` beadm create ${bename}.orig echo "Original boot environment saved as ${bename}.orig" # Create and configure addresses on two IP interfaces /usr/sbin/ipadm create-ip net0 /usr/sbin/ipadm create-ip net1 /usr/sbin/ipadm create-addr -a 10.153.125.222/24 net0 /usr/sbin/ipadm create-addr -a 169.254.182.77/24 net1 # Add a default route with net0 as the gateway /usr/sbin/route add default 10.153.125.1 -ifp net0 # Record that this script's work is done svccfg -s site/first-boot-script-svc:default setprop config/completed = true svcadm refresh site/first-boot-script-svc:default smf_method_exit $SMF_EXIT_TEMP_DISABLE method_completed "Configuration completed"