そのため、Bash Boosterは、 dem等の bashスクリプトを記述して、サーバーを構成し、アプリケーションを展開するのに役立つライブラリです。 シェフの印象を受けてVagrantで使用するために書かれましたが、範囲はこれに限定されません。 それは、bash、標準ユーティリティ、そして場合によってはpython(そのままLinuxシステムにインストールされる)のみを必要とします。 つまり 追加のトレーニングなしで完全に裸の車で走るのは非常に適しています。
生きている例を見てみましょう。 Vagrantをデモに使用します。 この例のソースコードはBitbucketにあり、すべてのステップが個別のコミットとしてフレーム化されています。
したがって、Linux Ubuntu 14.04を搭載したサーバーがあり、その上にnginxをインストールして構成する必要があるとします。
空のディレクトリとVagantfileを作成します:
# -*- mode: ruby -*- # vi: set ft=ruby : VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "ubuntu/trusty32" config.vm.network :forwarded_port, host: 8080, guest: 80 end
そして、コマンドを実行します:
$ vagrant up
Vagrantはクリーンなシステムで仮想マシンを作成して実行します(イメージをダウンロードするまで待つ必要がある場合があります)。 さらに、ホストシステムの現在のディレクトリを/ vagrantポイントにマウントします。 仮想マシン内の例のファイルにアクセスできます。 あなたはそれをチェックアウトすることができます:
$ vagrant ssh $ ls /vagrant Vagrantfile $ exit
次に、 Bash Boosterアーカイブをダウンロードして、bashbooster-0.3betaに解凍します(執筆時点では0.3betaが現在のバージョンです)。 また、セットアップスクリプトを指定して、Vagrantfileを修正します。
# -*- mode: ruby -*- # vi: set ft=ruby : VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "ubuntu/trusty32" config.vm.provision :shell, inline: "/vagrant/provision.sh" config.vm.network :forwarded_port, host: 8080, guest: 80 end
これで準備が完了し、最も興味深いものに進むことができます。 provision.shスクリプトを作成します。
#!/usr/bin/env bash # CDPATH, # cd unset CDPATH # , cd "$( dirname "${BASH_SOURCE[0]}" )" ## # Bash Booster ## BB_LOG_USE_COLOR=true # source bashbooster-0.3beta/bashbooster.sh # nginx bb-apt-install nginx
スクリプトを実行可能としてマークします。
$ chmod a+x provision.sh
そして、サーバーのセットアップを実行します。
$ vagrant provision
ログには次の行が表示されます。
bb-apt [INFO] Updating apt cache bb-apt [INFO] Installing package 'nginx'
これはどういう意味ですか? 実際、スクリプトは実行されました。
$ apt-get update $ apt-get install nginx
ブラウザでhttp:// localhost:8080にアクセスすると、標準の挨拶「ようこそnginxへ!」が表示されます。ここでvagrantプロビジョニングを再度実行すると、スクリプトはほとんど即座に動作します。要求されたパッケージは既にインストールされています。
index.htmlファイルでwwwディレクトリを作成しましょう:
<h1>Bash Booster Rocks!</h1>
そして、このディレクトリからファイルを提供するようにnginxを設定します。 これを行うには、confディレクトリにnginx-default-site構成を作成します。
server { root /vagrant/www; index index.html; }
そして、provision.shスクリプトに構成の同期を追加します。
bb-event-on "nginx-updated" "on-nginx-updated" on-nginx-updated() { service nginx restart } bb-sync-file \ /etc/nginx/sites-available/default \ conf/nginx-default-site \ nginx-updated
次に、構成コマンドを実行します。
$ vagrant provision
ログが表示されます:
* Restarting nginx nginx ...done.
http:// localhost:8080にアクセスすると、標準のnginxグリーティングではなく、以前に作成したファイルから「Bash Booster Rocks!」という非常に大きな碑文を見ることができます。
どのように機能しますか? bb-event-on関数は、on-nginx-updated関数をnginx-updatedイベントにサブスクライブします。 bb-file-sync関数は、nginx設定のローカルコピーを現在のバージョンと同期します。 変更があった場合、この関数はnginx-updatedイベントを発生させ、それに応じてハンドラーはnginxを再起動します。 vagrantプロビジョニングを再試行すると、nginxを再起動せずに機能します。 nginx-default-siteを変更すると、nginxが再起動します。 したがって、必要なことだけを行うコンパクトなべき等スクリプトが得られました。
もちろん、Bash Boosterのすべての機能がここで説明されているわけではありませんが、最初の知り合いにとっては十分です。 完全なドキュメントはwww.bashbooster.netで入手できます。