Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
Docker for AWSで docker-volume-netshare によるAmazon EFSマウントを可能にするDockerAmazonEFSd4x "mkdir -p /var/lib/docker-volumes/netshare/efs\n", "mount --bind /var/lib/docker-volumes/netshare/efs /var/lib/docker-volumes/netshare/efs\n", "mount --make-shared /var/lib/docker-volumes/netshare/efs\n", "docker run --restart=always -d ", "--name=netshare-efs-for-d4aws ", "--privileged ", "-v /var/run/docker/plugins:
Docker for AWS(Azure)はMoby Linuxと名付けられたbusyboxベースのOSに... まあ詳しくはこれを見てくれ。 Docker for AWS 試してみた その1 - Qiita 以下、DockerForなんとかは D4xと呼称します。イメージの名前とかがそうなってるし。 Docker APIへの標準的なアクセスについて。 さて、D4xの操作はドキュメントによるとマネージャノードの専用コンテナにSSHでログインするか、トンネルを貼るという案内だ。 参考: Deploying Apps on AWS/Azure D4xはベータ申込者(AWSならアカウントID)に対してDocker社からShareされたAMIをCloudFormation(以下CFn)で起動する。 この特性上、テンプレートを操作してしまえばいかようにでもカスタマイズは可能のように思えるけど、そもそ
最近、Amazon ECSのコンソールに ECS now supports Docker 1.9 ... って出ます。 Dockerは1.9でlog-driverにAWSのCloudWatch Logsを指定できるようになった。 ただECSは1.7系だったので、しばらく次のようなプロバイダ逆転現象で使っていたんです。 さくらのクラウド(等)においてあるDocker-Machine: Dockerのlog-driverでawslogs指定。 => CloudWatch Logsとの連携楽ちん Amazon ECSで動かしているサービス: syslog経由でlogsコンテナからawslogsへ。 => 連携がなんかめんどっちい ベースAMIのDocker1.9への更新で、専用のlogsコンテナもういらなくなったはずだと思うので少し調べることにした。 ECSで使われるAMIからインスタンスを作成
Chefのローカルモードだけでリモートサーバを運用してみようと、Knife-Zeroを作った。Nodeの構成情報もとれるよ。Rubychefknifeknife-zero Chef(ChefInc)の管理ツールKnifeのプラグインで、Knife-Zeroというのを作りました。 https://github.com/higanworks/knife-zero 追記: バージョンアップして、knife zero chef_client/convergeサブコマンドを追加しました。 追記: ひと通りの機能を実装したので、knife-zeroのことをまとめるドキュメントをゆるやかに作成しています。 https://knife-zero.github.io 端的にいうとAnsibleのやり方をパクりつつ、Chef-Serverから構成管理を含む機能全部を頂戴しながら本体の管理を捨てました。 Kni
前回 Chefのローカルモードだけでリモートサーバを運用してみようと、Knife-Zeroを作った。Nodeの構成情報もとれるよ。 - Qiita の続きといえば続きです。 Knife-Zeroのページはこちら。 http://knife-zero.github.io/ja/ Chef11.xからローカルモードというのが加わりました。Chef-Client/Server環境の簡易版であり、Soloの代わりでもあります。 Chef-Soloからの乗り換えとしてChef-Zero(ローカルモード)検索が多いようなので、この追記を先頭に移動 このサンプルではSSH越しにローカルモードを実行していますが、単にサーバ側にChef-Repoを置いてローカルモードをしたい場合、 Chefをインストール後にChef-Repoのディレクトリに移動してchef-client -zでOKです。 Soloみたいに
この記事は最終更新から1年以上経過しています。 気をつけてね。 Elasticsearch+Kibanaといえば、ログなどの時系列データ(logstash形式)を可視化する利用法が広く知られています。 今回は構成管理の用途にElasticsearchを使うため、ohaiのデータを入れて、Kibanaで検索できるようにしてみます。 何故やるの OhaiはChefがNode情報を収集する時に使用するライブラリですが、個別に利用する事ができます。 通常はChef-Serverに集約しますが、それ以外の環境でOhaiのデータ(Json)を使い捨てするのは勿体無いかもしれない。 Jsonをそのまま投げて良いElasticsearchに突っ込んでみたらどうなるか。 OhaiからElasticsearchに投げる時の方針 手っ取り早さを優先で、次の方針でElasticsearchにドキュメントを登録しま
この記事は最終更新から1年以上経過しています。 気をつけてね。 serverspecで状態をテストした後、Webのアプリなら振る舞いもテストしようと思いました。 で、serverspecがRSpecならば、Capybaraも混ぜたらいいんじゃね? と試してみた。 コード spec_helperはこんな感じで。 アプリのコードを読むわけではないので、webkitドライバでリモート扱いとしてテストすることにしました。 require 'serverspec' require 'capybara/rspec' require 'capybara-webkit' include SpecInfra::Helper::Exec include SpecInfra::Helper::DetectOS RSpec.configure do |c| if ENV['ASK_SUDO_PASSWORD']
specinfraは汎用コマンド実行フレームワーク。RubyGemsとしてで配布されています。 追記:これは1の頃の話なので全体的に古いです。 この書籍が一番詳しい。 => O'Reilly Japan - Serverspec ソースはこちら https://github.com/serverspec/specinfra specinfraが目指す所は、情報処理学会研究報告の serverspec: 宣言的記述でサーバの状態をテスト可能な 汎用性の高いテストフレームワーク という論文を見ると良いでしょう。 論文もソースコードと同様にGithubに公開されています。 https://github.com/mizzy/serverspec-thesis 概要 同じメソッドで任意のOS用のコマンド実行文字列を取得したり実行して結果をとったりします。 さわった感じこんな挙動 バックエンドの形式を
ちまたで話題のCircle CI https://circleci.com/ 。 やってみようと、あるRubyGemsのプロジエクトをCircle CIに突っ込みました。 とりあえず回したところ、テスト用のRubyバージョンはcircle.ymlによって1つを指定するタイプだった。 Travis CIはこんな感じで複数のRubyバージョンを指定できるんですよねー。 早速サポートに聞いてみました。 We don't have very good support for build matrices at the moment. If you set up a build with 2x parallelization, you might be able to do something like: circle.yml と、すぐに案内してくれたワークアラウンドがこちら。 dependenci
serverspecで完結するテスト駆動インフラ構築 (Test-Driven-Infrastructure with serverspec)RubyTDDcheftest-driven-infrastructureserverspec この記事は最終更新から1年以上経過しています。 気をつけてね。 サーバの構築状況を、手動確認の段取りでチェックするserverspec、使いやすくて評判ですね。 注: このエントリはほぼネタなのであまり参考にしてはいけません。 さて、テスト駆動開発という手法は皆さん既にご存知でしょう。今日は折角テストツールがあるのですからサーバ構築をテスト駆動でやってみましょう。 まずFailするSpecサンプル こちらはパッケージnginxがインストールされているかテストするserverspecのサンプルです。
ec2-**なコマンドを使いたい amazon linuxなら/opt/awsにamitools/apitools入っており、パスが通っているので使いましょう。 デフォルトの権限はレイヤ設定iam roleに基づきます。 chef-shellで作業したい /opt/aws/opsworks/currentで作業すれば、普通のChefクライアントを操作出来ます。 11.4 の場合 $ cd /opt/aws/opsworks/current $ bundle exec chef-shell -s -c conf/solo.rb loading configuration: conf/solo.rb Session type: solo Loading.......done. This is the chef-shell. Chef Version: 11.4.4 http://www.ops
更新:v1.2.2.devに対応。 Chef Inc. (旧Opscode)のtest-kitchenについて、テストのライフサイクルとサブコマンドの使い方を説明する。 1.2系について。 Test-Kitchenヘルプ まずはkitchenコマンドを叩くとヘルプが表示される。 $ kitchen Commands: kitchen console # Kitchen Console! kitchen converge [INSTANCE|REGEXP|all] # Change instance state to converge. Use a provisioner to configure one or more instances kitchen create [INSTANCE|REGEXP|all] # Change instance state to create. Star
この記事は最終更新から1年以上経過しています。 気をつけてね。 前回 ChefでSourceから何かをインストールするCookbookのウォークスルー で、IRCサーバのngircdをインストールするためにtarballを展開してmakeするサンプルを出しました。 折角なので同じことを LWRP(Lightweight Resources and Providers) で表すことでLWRPについて解説をしてみます。 これもGithubでCookbookを確認できます。タグはv0.2.1。 higanworks-cookbooks/ngircd_smartos(v0.2.1) LWRPの取り扱い 前回作成したレシピでは以下の事をやりました。 tarballをダウンロード coufigure && make && make install LWRPは関数みたいに捉えられがちなので、一連のcon
require 'json' file "/tmp/dna.json" do content JSON.pretty_generate(node) end これをrun_listの最後にでも入れておけば、最終的にnodeがもつattributesが確認できてdebug等に使えます。 ついでにAWS OpsWorksで追加されるAttributesを確認する クラスメソッドさんがAWS OpsWorksについて書かれています。 AWS OpsWorksで持っている値をCustom Chef Recipeの中で使いたい! | Developers.IO: 本当はApplicationの値だけでなくて、LayerとかStackで決めた値も取れるかなと期待していたのですが、今回見つける事ができませんでした。 もしかしたら他のところにあるかもしれないので、見つけ次第追記します。 カスタムレシピとして
この記事は最終更新から1年以上経過しています。 気をつけてね。 Opscode Chefであるrailsアプリをデプロイするレシピを書いたのでメモ。 本Railsデプロイ概要 前提: rubyが入っている、postgresqlサーバは既にある start, stopは専用スクリプトを用意、monit配下で管理する。 デプロイのプラットフォームはとりあえずJoyent SmartOS、多分ほかでもあまり違いはない。 Rackupはunicorn, socketでnginxからリバースプロキシ asset_pipilineを使い、assets以下はnginxでホスト。 レシピ 関連Cookbooksやdata_bagsのことは考えず、固有名称や複雑な箇所は説明用に改変してます。 chefのdeployリソースは基本的にcapistrano/deployのように決められたフェーズがあり、それぞれ
この記事は最終更新から1年以上経過しています。 気をつけてね。 Opscode Chefではレシピをランリスト(run_list)としてコマンドラインクライアントに渡したり、Role等に記述します。 あれって結局どういう書式が有効なんでしょうかと思いまとめました。 有効な書式一覧 ー recipe[recipe_name] - recipe[recipe_name@1.0.0] - role[role_name] - recipe_name@1.0.0 - recipe_name 引用元ははこちらのソース、MasterなのでChef11ですね。 目を引くのは@ですね、実はランリストで直接バージョン指定ができるんですね。 recipe_nameについて さて、recipe_nameを更に分解するとcookbook_name::recipe_name、またはrecipe_nameという書式にな
この記事は最終更新から1年以上経過しています。 気をつけてね。 Chefのレシピでソースから何かをmakeしてinstallをするやり方は、個人によってまちまちかと思います。 私はこんな感じでやっています。 概要 Joyent SmartOSにirdサーバデーモンのngircdをインストールして、サービスとして起動します。 このCookbookはGithubに公開しています。 higanworks-cookbooks/ngircd_smartos(v0.1.1) 追記:続編できました! [LWRPによる]続・ChefでSourceから何かをインストールするCookbookのウォークスルー レシピのざっくり解説 ローカルに目的のファイルが無かったら取ってくる ファイルを取ってきたらmake & install、ローカルがあれば何もしない サービス登録 サービススタート attributes
この記事は最終更新から1年以上経過しています。 気をつけてね。 Chef,Puppetに代表される自動構築・構成管理ツールを使うと開発したサーバを検証用などの目的で簡単に再現可能になります。 ただ、漠然としたサーバ構築をしていると何をサービス提供しているのかという定義が曖昧になるため、Cucumber等を使ったテストを軸にテスト駆動でのサーバ構築をしてみましょう。 応用すれば既存のサーバをCucumberによってモデリングし、Chefによって繰り返し再現可能な状態に持っていけます。 このコンテンツで使ったコードはGithubの https://github.com/higanworks/test_driven_infrastructure_example で公開しています、参考にしてみたりフィードバックしてもらえると助かります。 ツール Cucumber: "ふるまい"を自然言語のように記
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く