もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

deployerで範囲指定でhostを選択

はじめに

こんばんは。

最近リリースが迫っていて、余裕がありません。。。

とりあえず今回も備忘録です。

本題

現在開発中のサイトは、deployerを使ってデプロイを実現しています。

toBtoC、社内画面という感じで、複数台のサーバーに対してデプロイを実行する形ですが、以下みたいな形でhostsを最初は指定してました

<?php

host('front-1', 'front-2', 'front-3', 'partner-1', 'admin')
    ->stage('production')
    ->set('rsync_src', '/var/www/project')
    ->set('deploy_path', '/var/www/project');

host() は可変長引数リストを使ってるので、このような感じで指定するみたいです。

配列指定はその先の Rangeクラスでエラーが出てしまいます。

$ PHP Warning:  preg_match() expects parameter 2 to be string, array given in /path/to/vendor/deployer/deployer/src/Host/Range.php on line 18

サーバーが増えるたびに ここに追加するのは流石にだるいので、なんか無いかな?と思ったらありました。

deployer.org

数値だけならば 範囲指定が出来るみたいです。

<?php

host('front-[1:3]', 'partner-1', 'admin')
    ->stage('production')
    ->set('rsync_src', '/var/www/project')
    ->set('deploy_path', '/var/www/project');

これで front-1 〜 front-3が対象になります。

終わりに

awsの設定系話も溜まってるのですが、リリース作業が忙しくて、書く時間もありません。。。

来週になれば落ち着くので、がんばります !