自分用のServerTemplateさえ持っておけば、いつでも自分用のサーバを用意できる。しかも、RSでServerTemplateを保持するのは無料。ServerTemplateを使いこなして、RSを使っている意味がでてくる。
今回はServerTemplateの一要素であるRightScriptを書いてみた。
RightScriptについては下記を参考にした。
- いつも参考にさせていただいているRightScale Hack
- 既にServerTemplateを使っていれば、RS dashboardの[Design]-[RightScript]にいくつかRightScriptsが登録されているはず。これらもとても参考になる。
結果正常に動作した。
#!/bin/bash -ex # # Test for a reboot, if this is a reboot just skip this script. # リブート時に動作しない設定 # if test "$RS_REBOOT" = "true" ; then echo "Skip installation and configuration on reboot." exit 0 fi #### Setting #### #ディストリビューション毎のセッティング if [ $RS_DISTRO = centos ]; then ## Input Configration Setting on Ubuntu ## echo "Initializing CPAN setting configuration,now..." cat<<EOF >/usr/lib/perl5/5.8.8/CPAN/Config.pm # This is CPAN.pm's systemwide configuration file. This file provides # defaults for users, and the values can be changed in a per-user # configuration file. The user-config file is being looked for as # ~/.cpan/CPAN/MyConfig.pm. \$CPAN::Config = { 'build_cache' => q[10], 'build_dir' => q[/root/.cpan/build], 'cache_metadata' => q[1], 'cpan_home' => q[/root/.cpan], 'dontload_hash' => { }, 'ftp' => q[/usr/kerberos/bin/ftp], 'ftp_proxy' => q[], 'getcwd' => q[cwd], 'gpg' => q[/usr/bin/gpg], 'gzip' => q[/bin/gzip], 'histfile' => q[/root/.cpan/histfile], 'histsize' => q[100], 'http_proxy' => q[], 'inactivity_timeout' => q[0], 'index_expire' => q[1], 'inhibit_startup_message' => q[0], 'keep_source_where' => q[/root/.cpan/sources], 'links' => q[], 'make' => q[/usr/bin/make], 'make_arg' => q[], 'make_install_arg' => q[], 'makepl_arg' => q[], 'ncftp' => q[], 'ncftpget' => q[], 'no_proxy' => q[], 'pager' => q[/usr/bin/less], 'prerequisites_policy' => q[follow], 'scan_cache' => q[atstart], 'shell' => q[/bin/bash], 'tar' => q[/bin/tar], 'term_is_latin' => q[1], 'unzip' => q[/usr/bin/unzip], 'urllist' => [q[ftp://ftp.riken.jp/lang/CPAN/]], 'wget' => q[/usr/bin/wget], }; 1; __END__ EOF echo "Install CPAN Modules,now..." cpan $CPAN_MODULES fi #リターンコード0で終わらせる exit 0
はまったのは下記。
- catのredirectで設定を書き出す際、変数部分「$CPAN」を「\$CPAN」とエスケープする必要があった。これはshellの話で、RS特有の話ではないよう。
これでCPANライブラリが自由にinstallできるようになった。また、各種設定ファイルの変更もできる事が確認できた。
rpmパッケージのinstallについては、上述のServerTemplateのRightScriptsを参考にすればできそうだ。
ServerTemplateの作成は続く。。。
rpmパッケージのinstallについては、上述のServerTemplateのRightScriptsを参考にすればできそうだ。
ServerTemplateの作成は続く。。。
---
2011.11.13追記
Inputsの$CPAN_MODULESでspace区切りでモジュール名を渡せるようにしました。
これで、CPANモジュールのinstallまで全て完了できます。
2011.11.13追記その2
上記のConfig.pmですが、defaultの設定(ftpとしてrikenを選択)に「'prerequisites_policy' => q[follow],」を追加しています。
2012.2.15追記
上記のサンプルですが、fileを書きだす部分はrightscriptのAttachmentsに別fileとしてuploadする方がシンプルそうです。
2011.11.13追記
Inputsの$CPAN_MODULESでspace区切りでモジュール名を渡せるようにしました。
これで、CPANモジュールのinstallまで全て完了できます。
2011.11.13追記その2
上記のConfig.pmですが、defaultの設定(ftpとしてrikenを選択)に「'prerequisites_policy' => q[follow],」を追加しています。
2012.2.15追記
上記のサンプルですが、fileを書きだす部分はrightscriptのAttachmentsに別fileとしてuploadする方がシンプルそうです。