~スクリプトの実行~SCALRFacebookTwitterLinePocket※この記事は公開されてから1年半以上経過しています。情報が古い可能性がありますのでご注意ください。前回はSCALRのオートスケーリング機能をご紹介しました。数ステップの簡単な設定のみでサーバーのスケーリングができるのは便利ですよね。作成したサーバーそれぞれにアプリケーションのインストールや個別の設定をしたい場合もあるでしょう。その度に各サーバーにログインして設定をするのはやはり手間がかかります。面倒な設定作業も楽にしてしまいましょう!ということで、今回はSCALRのスクリプトを使った構築方法です。それらは全てUI上で実現できます。サーバーにログインすることなく、しかも複数のサーバーに対して実行することも可能なのです。新規のサーバー1台1台にログインしてスクリプトを走らせる、という面倒なことをする必要はありません。それでは、早速その使い方を見ていきましょう。今回はすでにApacheサーバーが1台起動している状態からスタートします。マシンタイプなどの基本設定以外は特に変更していない状態です。右上のScriptsタブをクリックすると利用可能なスクリプトの一覧が表示されます。自分で作成したスクリプト以外に、あらかじめSCALRが用意しているスクリプトも利用可能です。スクリプトの内容はActionsのViewをクリックすると確認できます。updateの中身を確認してみましょう。このように中身はシェルスクリプトになっています。ように実行時に引数を指定することも可能です。ActionsのExcuteをクリックするとスクリプト実行の設定画面に移ります。実行時に必要な設定は以下の通りです。targetスクリプトを実行する対象を選択します。対象は特定のサーバー1台でも実行もできますし、Farm単位やRole単位でまとめて実行することも可能です。オートスケーリングをしたWebサーバー全てに対して同じスクリプトを実行するときなどに便利です。optionsスクリプトの実行設定です。optionsスクリプト内で引数を使用している場合はここで指定します。settingsチェックを入れて実行した場合、Role一覧のActionsの中にショートカットが作成され、実行した設定内容が保存されます。同様の実行設定で何度も行うのであれば、ショートカットを利用することで入力の手間を省くことができます。設定入力後Excuteをクリックすると、対象サーバー内で設定に従ってスクリプトが実行されます。Scriptingで確認できます。新規スクリプトの作成では実際に簡単なスクリプトの作成と実行をしてみましょう。今回は「スクリプト実行時に時間とコメントを指定したファイル名で出力」するテストスクリプトを作成します。新規作成は左上メニューからScriptsの+、もしくは上部Scriptsタブ内の+をクリックします。mode(同時実行設定)を指定します。複数のスクリプトを実行した時に、前のスクリプトが完了してから次のスクリプトを実行するかどうかです。理由がなければ、同時実行による競合状態が発生しないようにSynchronous(前のスクリプトの完了を待つ)を選択しておくのが良いでしょう。次はスクリプト本文を記述します。%output%dateとcommentをoutputに出力するだけの短いスクリプトです。引数を指定する場合は、%comment%のように%で引数名を括ることで実行時に値を指定できます。Variablesタブを開くと既に用意されている組込み変数を確認することができます。これらの変数は実行するサーバーのIDやIPアドレスなど、主に実行対象ごとに決まった値です。実行時に特に値を指定する必要はなく、自動で値が補完されます。組込み変数は自作の引数と同様に本文内で利用することもできます。ログとしてサーバー情報を出力する場合などに利用すると良いでしょう。記述が完了したらsaveで内容を保存してScriptsタブに戻ります。作成したスクリプトのActionsからExcuteをクリックし、実行対象とオプションを指定します。サーバー全てです(1台しかありませんが)。入力が完了したらExcuteして、実行結果をサーバー一覧画面のコンソールアイコンから確認してみましょう。test入力通りに時間とコメントが出力されていますね。このように実行時に引数を変更する指定することが可能なので、処理自体は同じでもサーバーごとに名前や数値を変更したい、という場合に有効です。自作のスクリプトはActionsのEditから再編集が可能です。内容を更新するとバージョンが1つ挙がって保存されます。編集する前の内容も過去のバージョンとして保存されており、実行時に前のバージョンを選択して実行することも可能です(ただしSCALRに初めから登録されているスクリプトは編集できません)。1つのスクリプトを繰り返し更新する以外にも、Fork(分岐)させて別のスクリプトとして保存することもできます(上書き保存ではなく、別名で保存するイメージです)。ベースとなるスクリプトを利用方法別に編集・保存したいときに使うと良いでしょう。Forkさせた場合は新規の自作スクリプトとして保存されます。SCALRにあらかじめ用意されているスクリプトをForkさせることも可能です。自動実行SCALRのスクリプトは手動実行の他に、自動で実行させることもできます。FarmのコンフィグからRoleの設定画面を開きます。メニューの中からScriptingを選択し+をクリックすると実行内容を設定できます。スクリプトの実行タイミングであるTriggerを指定しましょう。サーバーの再起動時や新しいMySQLのマスターが立ち上がった時など様々なトリガーがあります。今回はHostUp(サーバー作成後)を選択します。トリガーを設定したら、Actionでスクリプトの実行設定を行います。使用するスクリプトは先ほど作成したDate_Commentです。設定項目の中にあるOrderはスクリプトの優先順位です。これは実行するスクリプトを複数設定した場合に利用される値です。複数のスクリプトが同じタイミングで実行されるときは、この値が小さいものから実行されます。実行順序が重要なスクリプトはこの設定に注意しましょう。(例:アプリケーションのインストールスクリプトと、そのアプリケーションの設定を行うスクリプトなど)Targetはスクリプトの実行対象範囲です。トリガーが起動したサーバー以外にもスクリプトを適用させることができます。behaviorsが少しわかりにくいかもしれません。BehaviorsはRoleにインストールされているアプリケーションの種類で、Role選択時や設定画面で確認できます。behaviorsにApacheを指定した場合は、BehaviorsにApacheが含まれるRole全て(app-apache64-centos6、lamp64-centos6など)でスクリプトが実行されます。only(トリガーが発生したサーバーのみ)にします。/root/output.txtとします。これでスクリプトの設定は完了です。今回の実行条件がサーバーの作成時なので、saveの前に起動するサーバー数の設定をしておきます。instancesを1から2に増やしましょう。Serversタブから一覧画面に移動します。するとサーバーが作成され始めるので、作成完了するまで待ちましょう。新しいサーバーのStatusがRunningになったのを確認したら、コンソールアイコンからoutput.txtの内容を確認してみます。started.作成完了後の時間でコメントが出力されました。スクリプトの自動実行は複数のスクリプトを異なる実行タイミングで設定することも可能です。新規サーバーの作成時に特定のアプリケーションのインストール、そして再起動時など特定のタイミングでアップデートやログの出力を自動で実行させる、という設定をRole内のサーバーにまとめて設定することもできます。今回はSCALRのスクリプトの使い方をご紹介しました。一度スクリプトを作成しておけば、サーバーごとに配置する必要もなく、すぐに実行可能という手軽さ。大量のサーバーを管理するのなら、かなり効果的な機能となるでしょう。スクリプトの書き方や実行方法の組み合わせ次第で、作業の手間を省くことができます。自分の環境に合わせたスクリプトの利用法を考えてみてください。ビジネス開発本部の成田でした。~既存構築済サーバーでもSCALR管理~SCALRで既存サーバーのインポート機能について紹介します。~環境・ユーザ管理~SCALRは複数の構築環境を同時に管理できるのが特徴です。Inc.▲はてなブログをはじめよう!blog-idcfさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。