Umi Uyuraのブログ

プログラミング関連の作業ログ

Boxen環境をアップデートしてみた

先日、Boxenで環境構築してみましたで環境構築してからも、後から必要になったものでBoxen用のPuppetほにゃららが公開されているようなものとか、Homebrew、Node.js関係を少しずつ継ぎ足していました。

しかし、本家のboxen/our-boxenを見てみると、結構頻繁にコミットされていて、どんどん進化しているみたいなので、ここで一度自分のBoxen環境をアップデートしてみることにしました。

Boxenのアップデート

手順については、以下の記事を参考に実行しました。

Boxenをアップデートする方法 - Qiita [キータ]

まずはremoteにupstreamという名前で本家リポジトリを追加し、$ git pullで差分を取り込み。

$ git remote add upstream git://github.com/boxen/our-boxen.git

$ git pull upstream master

...
Auto-merging manifests/site.pp
CONFLICT (content): Merge conflict in manifests/site.pp
Auto-merging Puppetfile.lock
CONFLICT (content): Merge conflict in Puppetfile.lock
Auto-merging Puppetfile
Automatic merge failed; fix conflicts and then commit the result.

その結果、site.ppとPuppetfile.lockでコンフリクトが発生した模様。

site.ppはインストールするNode.jsのバージョンを指定する部分で、デフォルトで指定されているうちのv0.4とv.0.6をコメントアウトしている部分なので、元に戻すだけでした。

Puppetfile.lockについては、個別に追加していたいくつかのPuppetほにゃららに関して、GITHUBTARBALLとDEPENDENCIESという記述が追加/変更が入った部分がコンフリクトになっていたので、記述形式を合わせたりバージョンを新しい方に合わせたりという修正でした。

上記2つのコンフリクトを解消した後、

$ script/boxen

を実行して、特にエラーなど発生しないことを確認。

心なしか、以前より実行中のログの出力が多くなった気がしますが、アップデート処理のせいでしょうか。

Puppetfileのアップデート

これでBoxen環境自体は最新になったのですが、ついでに、個別に導入しているPuppet群もアップデートしておくことにしました。

Puppetfileに記載している各Puppetの後ろの数字は、GitHubリポジトリのタグを示しているということで、これを一つ一つ確認する必要がありますが、今回は以下の記事を参考に、一括更新を試してみることにしました。

boxenのPuppetfileを一発更新するスクリプトを書いた | WEB EGG

上記のautoUpdate.phpを/path/to/my-boxen直下に置き、Puppetfileに追加したリポジトリを指定するコメントを追記して実行。

Warning: file_get_contents(https://api.github.com/repos/boxen/puppet-osx/tags): failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden
 in /opt/boxen/repo/autoUpdate.php on line 14

ところが、何やら403エラーで動きません。

直接ブラウザでhttps://api.github.com/repos/boxen/puppet-osx/tagsを叩くと、ちゃんとJSON形式のレスポンスが返ってきますので、GitHub側には問題はなさそう。

念のためGitHubアカウントのSSHキーが読み込まれていないかなども確認したのですが、

PHPよくわからないし、あまり深追いするところでもないと考え、結局一つ一つリポジトリのタグを確認することにしました。

実際のところ、アップデートがあったのは数個だったし、数もそれほど多くはないのでさほど手間ではないですが、せめて差分の有無だけでも自動的にチェックする手段は確立しておきたいところだなーとは思いました。

こんな感じで、ちょっとずつ成長中のmy-boxenでした。

umi-uyura/my-boxen