2016-10-30 (日)

今さらながら Knife-Zero を使ってみた [Chef]

個人と仕事のサーバはどちらも Knife-Solo で構成管理しています。

Chef がバージョンアップしたら、私はなるべく knife solo prepare し
ていますが、このコマンドは単純実行すると、サーバの台数に比例して時
間がかかります。

Knife-Zero でそれを解決できるのかなと思い、Getting Started してみ
ました。

masutaka/my_chef_repo

knife-zero trial



続きを読む

2015-08-30 (日)

knife-solo v0.5.0 から --forward-agent オプションが必要かも [Chef]

knife-solo v0.5.0 から --forward-agent オプションを付けないと、
Cook に失敗するケースがありました。

例えばこのように指定します。

bundle exec knife solo cook ci-docker

bundle exec knife solo cook ci-docker --forward-agent

続きを読む

この記事に言及しているこのブログ内の記事

2015-08-30 (日)

サーバの CI を EC2 から Docker に変更したけどモヤモヤ [CircleCI][Chef][Docker][AWS]

サーバの CI ってどうするのが良いのでしょうね。現状やむを得ず行って
いますが、やり過ぎ感も否めないです。

[2014-09-14-1] に Wercker+Vagrant+EC2 の組み合わせでこのサーバの
CI を始めてから、[2015-02-08-2] に CircleCI+Vagrant+EC2 に変更しま
した。そして今回、CircleCI+Docker に変更しました。

理由は EC2 を使うのは大げさだと思い始めたからです。CI 時間の短縮を
期待しましたが、ほとんど変わりませんでした。結果的に、時々 EC2 イ
ンスタンスを起動するのに 30 分以上かかり、CircleCI のタイムアウト
時間を超える問題は解決出来ましたが。

Docker 入門できて自己満足は得られたのですが、Docker の使い方ではな
いなあというのが正直な感想です。

続きを読む

この記事に言及しているこのブログ内の記事

2015-07-26 (日)

Chef で nginx の reload が出来なくなっていたので対策した [Chef][nginx]

Ubuntu 14.04 LTS + nginx 1.9.3 の環境で、knife solo 経由での nginx
reload が出来なくなっていました(Chef のバージョンは 12.4.1)。

サーバの CI では nginx start のみが実行され、nginx restart は実行
されないため、気づけなかったようです。

続きを読む

2015-06-29 (月)

自前でufwのレシピとserverspecのテストを書いた [Chef][serverspec][Ubuntu]

ufw = Uncomplicated FireWall です。

レシピはこんなのを作りました。opscode のレシピとか使うと、何設定し
ているか分からず結局全部読むことになるので自前で書いてます。

続きを読む

2015-02-08 (日)

サーバのCIをWerckerからCircleCIに移行した [CircleCI][Wercker][vagrant][AWS][serverspec][Chef]

画像

[2014-01-09-1]からWerckerを使い始めて1年とちょっと。このたび
CircleCIに移行しました。理由は以下のとおり。

- 会社のJenkinsが壊れてCircleCIを使い始めた。2つ覚えているのが面倒
- [2015-01-25-1]の継続的bundle updateをやりたい(WerckerはAPIがないっぽい)
- [2014-01-09-1]当時と違いCircleCIは1コンテナまで無料になった

Werckerは自分のBoxを簡単に作れたのが良かったんですけどね。
(masutaka/wercker-box-rvm-vagrant-awsの更新は停止します。)

続きを読む

2015-01-11 (日)

Herokuにberkshelf-apiサーバを立ててみた [Heroku][Chef][Berkshelf][GitHub]

前回[2015-01-09-1]はBerksfileにGitリポジトリを直接書きましたが、レ
シピの依存関係の解決ができませんでした。

berkshelf-apiサーバを立てるとその問題が解消されるようなので、
Herokuにberkshelf-apiサーバを立てて検証してみました。

続きを読む

2015-01-09 (金)

あるGitリポジトリのサブディレクトリにあるChefレシピを1つだけ取り込む方法 [Chef][Berkshelf][Git]

Chef-solo(Knife-solo)とBerkshelfの話。

Berksfileに例えばこうやって書けば使えた。これは有能!
relってサブディレクトリのことだったのか。Gemfileで使ったことなかった。

cookbook 'nginx', git: 'git@github.com:masutaka/cookbooks.git', rel: 'nginx'


続きを読む

この記事に言及しているこのブログ内の記事

2014-10-04 (土)

Werckerのデプロイボタンはなんだかんだ言って便利だった [Wercker][Chef][serverspec][AWS]

[2014-09-14-1]に書いたとおり、このmasutaka.netではサーバのCIをして
います。

今までテストが通ってから、手動でCook+Serverspecして不便に感じてませ
んでしたが、試しにWerckerのデプロイ設定をしてみたら、案外便利でよく
使っています。

Wercker Deployment Button

wercker.ymlはこんな感じです。

続きを読む

2014-09-23 (火)

さくらのVPSでCookがダンマリになる件を回避した [Chef][Ubuntu]

[2013-05-19-1]にインストールしたUbuntu 12.04はうっかり32bit版でし
た。。仕方がないのでUbuntu 14.04へのアップグレードがてら、クリーン
インストールすることにしました。

管理画面からポチポチしてOSのインストールは完了。Cookはあらかじめ
VirtualBoxとEC2で確認していたので万全です(キリッ

と思いきや、いつまでたってもRecipeが処理されません...。

続きを読む

2014-09-14 (日)

Wercker + Vagrant + AWS + serverspecでChefのレシピをCIする [Wercker][vagrant][AWS][serverspec][Chef]

画像

[2014-01-09-1]からmasutaka.netのCIを開始したが、残念ながら
masutaka.netに直接serverspecする、なんちゃってCIだった。
masutaka.netにcookしてからPRを出して、WerckerにCIさせていた。

WerckerとAWSを連携させて、テストのたびにサーバをまっさらな状態から
作り、終わったら破棄することが可能になったので、ここに記録しておく。

続きを読む

2013-08-20 (火)

GitHubのPrivateリポジトリをChef経由でcloneしようとしたらハマった [Chef][GitHub]

画像 画像

自分のinit.elや.zshenvはGitHubのPrivateリポジトリで管理しています。
masutaka.netでも同じ設定を使いたかったので、Chef経由(実際はKnife
Solo経由)でgit cloneしようとしたら結構ハマったので、メモしておきます。

ぶっちゃけmasutaka.netに秘密鍵をおけば、ハマることはないです。でも
セキュリティ的にあんまりなので、sshのforward agent機能を使い、ロー
カルの公開鍵をリモートでも使うようにします。

続きを読む

2013-08-15 (木)

nginxのアクセスログをFluentd経由でGrowthForecastのグラフにしてみた [GrowthForecast][Fluentd][nginx][Chef]

画像

昨日[2013-08-14-1]インストールしたGrowthForecastをFluentdと連携させ
てみます。

今回グラフにしたのは2つの情報です。

(1) nginxが各リクエストを処理した時間($request_time)
画像

(2) nginxが返したHTTP Status Codeの数
画像

続きを読む

2013-08-14 (水)

GrowthForecastをインストールする [GrowthForecast][Perl][Chef][Ubuntu]

前回[2013-07-17-1]から間が空いてしまいましたが、GrowthForecastをイ
ンストールしました。

インストールするだけなら、これだけでOKです。

% mkdir ~/growthforecast
% cd ~/growthforecast
% echo "requires 'GrowthForecast';" > cpanfile
% sudo apt-get build-dep rrdtool
% plenv exec carton install


起動方法はこんな感じ。http://example.com:5125とかにアクセスすると確
認出来ると思います。

% cd ~/growthforecast
% carton exec -- perl growthforecast.pl --data-dir . &


--data-dirオプションを指定しないと
~/growthforecast/local/lib/perl5/auto/share/dist/GrowthForecast/data/
以下にsqlite関連のファイルが作られます。~/growthforecast/localは
削除することもあるでしょうから、指定した方が良いと思います。

続きを読む

2013-07-17 (水)

plenv + cpanm + cartonでPerlの環境を構築した(Ubuntu版) [Perl][Chef][Ubuntu]

plenv + cpanm + carton でPerlの開発環境を構築する|Act as Professional - hiroki.jp

私もGrowthForecastをインストールするために、Ubuntu 12.04.2 LTS上に
Perlの環境を構築しました。@hirocasterさんと若干違いがあった(下記★
の箇所)ので、私の手順も書き留めておきます。

Perl力はゼロな私ですが、以下の認識でだいたい合っていると思います。

- plenv
Rubyのrbenvに相当。複数バージョンのperlをHOMEにインストールし、切り
替えて使うツール。というよりシステムを汚さないために使う感じ。

- cpanm
Rubyのgemに相当。Perlのライブラリをインストールするために必要なツー
ル。今はcpanじゃなくてこれを使うみたい。

- carton
Rubyのbundlerに相当。アプリごとにライブラリを切り替えることが出来る。

続きを読む

2013-05-27 (月)

masutaka.netをさくらのVPSに置き換えました [chalow][nginx][Chef]

このブログはほぼ静的コンテンツなので、置き換えるメリットはほぼあり
ません。でもいろいろ遊びたかったので置き換えました!

◆置き換え前→さくらのレンタルサーバ [2009-05-17-4]
リアルサーバ。
他の人と/homeを共有する。
コントロールパネルからメールアドレスを作ったり、アクセス解析出来る。
カスタマイズ性はほぼない。
OSはFreeBSD 7.1-RELEASE-p16
WebサーバはApache/1.3.42
年間5,000円(スタンダードプラン)

◆置き換え後→さくらのVPS
仮想サーバ。
ユーザは自分だけ。
コントロールパネルとかはない。
カスタマイズしまくり。
OSはUbuntu12.04 LTSにした。[2013-05-19-1]
Webサーバはnginx/1.1.19にした。
年間16,280円(プランは2G。石狩リージョン。)


結構真面目にサーバを構築しました。
参考にしたのはもちろん『入門Chef Solo』[2013-04-22-4]

基本的にVagrantとserverspecで検証しつつレシピを書いたので、本番環境
で悩むことは少なかったです。時代は進みましたね。

Webサーバはnginxにしました。Apacheに比べて、設定がシンプルで惚れま
した。あと、ごく一部で使っているcgi用にfcgiwrapをインストール。

chef-soloで構築してみた疑問や課題はこんな感じ
・パッケージ全体のupgradeはどのタイミングでやれば良いのか?
・他の人のChef-soloリポジトリを知りたい。Vagrantでも真面目にテスト書いている?とか。


chalowはChef-soloでは管理してません。まあ、Webアプリケーションなの
で、デプロイ対象とかそっちの話だと思う。今は自作のmkchalowコマンド
でアップロードしてます。[2009-06-14-3]

2013-04-22 (月)

『入門Chef Solo - Infrastructure as Code』を読んだ [Book][Chef]



業務でちょろっと使ったことある程度だし、890円だし、買ってみた。

Chefはサーバー設定や更新を自動化するツールです。サーバにちょっとで
も興味がある人は今すぐ読んだ方が良いです。仮想サーバのVagrant使って、
本当に簡単に試すことが出来ます。

前職で頑張ってNFSやLDAPをセットアップしてましたが、もうそういう時代
じゃないんですね。

knife-solo 0.3.0のrake installや、knife solo initでエラーになり
ちょっと調べる必要があったので、そこはアップデート版に期待したいです。

買った時は考えていませんでしたが、これを機にこのブログのサーバをリ
プレイスすることにしました。

今はさくらのレンタルサーバ スタンダードを使っています。[2009-05-17-4]
要は共有サーバなので、自由にパッケージを入れたり設定を変えることは
出来ません。HOMEディレクトリも共有です。

ちょうど4/20が契約更新のタイミングだったので契約を停止し、さくらの
VPS 2Gプラン
を申し込みました。nginx動かしたり、fluentd(というかtd)
でログ集めたりしようかなあと思ってます。

そのためのサーバの設定をChef Soloで書きます。5/31までにリプレイスし
ないと、masutaka.netにアクセスできなくなる。ヤバイw

最終更新時間: 2017-12-06 23:28

検索


最近の話題
- 2017-11-28
  『Real World HTTP』を読んだ
- 2017-11-18
  iPhone X 64GB SIM フリー版を買って一週間経った
- 2017-11-16
  golang.tokyo #10 x WomenWhoGoTokyo に行ってきた #golangtokyo
- 2017-11-12
  『PromiseとAsync-Awaitまとめ(Emacsで)』という LT をした
- 2017-11-10
  RSpec 3.5 から shared_context の使い方が少し変わっていた
  S3 の public バケットで特定パス以下を IP アドレス制限する
- 2017-11-01
  『オブジェクト指向設計実践ガイド』読書会での感想メモ
- 2017-10-30
  『スターティングGo言語』を読んだ
最近追記された記事
- 2017-01-10-1 (4日前)
- 2017-04-08-1 (24日前)
- 2017-06-02-1 (158日前)
- 2017-04-29-1 (220日前)
- 2017-04-13-1 (234日前)
- 2017-04-13-1 (236日前)
- 2017-03-02-1 (278日前)
- 2017-02-25-1 (283日前)
- 2017-02-21-1 (287日前)
- 2015-06-07-1 (293日前)
カテゴリ
- Anthy (3)
- Apache (11)
- Apple (1)
- ATOK (4)
- au (3)
- AWS (20)
- Bazaar (1)
- Berkshelf (2)
- BigQuery (1)
- BitBar (3)
- Book (91)
- Boxen (2)
- Bugsnag (1)
- capistrano (4)
- chalow (56)
- ChatWork (1)
- Chef (17)
- Chrome (3)
- Chromecast (1)
- CircleCI (10)
- clang (26)
- Comics (2)
- Cooking (10)
- cvs (15)
- cygwin (12)
- D3.js (1)
- Debian (55)
- Docker (3)
- E-mail (8)
- elasticsearch (4)
- Emacs (222)
- Emacs講座 (10)
- English (4)
- feedforce (7)
- fetchmail (3)
- Firefox (20)
- Fluentd (4)
- ftp (1)
- Game (20)
- GCP (1)
- Gem (5)
- Git (9)
- GitHub (19)
- golang (9)
- Google (1)
- gpg (4)
- GrowthForecast (7)
- Health (3)
- Heroku (9)
- Homebrew (10)
- HTML (6)
- iBook (1)
- iPhone (16)
- IRC (1)
- Jenkins (8)
- JS (1)
- Karabiner (1)
- KeySnail (3)
- Kibana (1)
- Kindle (1)
- Kubernetes (2)
- Langrich (7)
- LDAP (6)
- Life (19)
- Linux (6)
- Mackerel (1)
- Mew (18)
- MongoDB (1)
- Mozilla (19)
- Music (1)
- MySQL (1)
- NAS (4)
- nginx (6)
- NHK (1)
- Node (1)
- ntp (4)
- OOP (2)
- OpenID (2)
- openssl (1)
- Opera (2)
- OSX (41)
- Perl (14)
- PHP (19)
- PostgreSQL (1)
- procmail (4)
- Programing (3)
- Puppet (1)
- Python (2)
- Rails (12)
- Rake (2)
- RaspberryPi (1)
- RedHat (29)
- Redmine (3)
- RSpec (2)
- Ruby (50)
- samba (3)
- screen (7)
- sed (5)
- serverspec (6)
- sh (8)
- Slack (2)
- Solaris9 (22)
- Spring (2)
- ssh (4)
- StatusNet (21)
- svn (12)
- Swift (1)
- Tablet (1)
- tdiary (3)
- Twitter (14)
- Twmode (6)
- Ubuntu (5)
- UNIX (102)
- vagrant (8)
- Video (21)
- vim (1)
- Wercker (9)
- Windows (29)
- Wine (3)
- XML (11)
- XP (1)
- zsh (25)
- インストールメモ (33)
- クイックシェイプ (12)
- ネタ (15)
- 勉強会 (16)
- 携帯 (6)
- 正規表現 (4)
過去ログ
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
2002 : 01 02 03 04 05 06 07 08 09 10 11 12
2001 : 01 02 03 04 05 06 07 08 09 10 11 12
Google+