OpsCode社のシニアコンサルタントであるJulianさんがChefConf2013で話された内容が参考になるので、簡単に紹介します。 スライドはこちらに公開されています。 また動画はこちらです。 ここで出てこない話として僕がやるべきだと思うことは「テストを書くこと」です。 test-kitchenとserverspecの組み合わせがおすすめです。 ばかでかいレポジトリをつくらないいろいろなものをまぜこぜにしない たくさんのレポジトリに分割するのを怖がらない (opscodeも昨年opscode/cookbooksの巨大構成から、opscode-cookbooks/個別cookbookに構成を変えています) 個々のCookbookの連携はBerkshelf使えば大丈夫 全員が共用するような会社用Cookbookをつくらない関係ないプロジェクトのものが含まれると見通しが悪くなる 大きすぎる
去年Chefが大流行して今更Chefの話を書くのも恥ずかしい気がするけど、@kajikenからリクエストがあったので、僕が思うChefのCookbookのベストプラクティスを書いてみる。 Berkshelf way まずはBerkshelf について。BerkshelfはCookbookの依存関係を解決してくれる便利ツール。基本的にCookbookはプロジェクトとは別なリポジトリで管理して、プロジェクトごとに必要なCookbookをBerkshelfで取ってきて使うのがいいと思う。Cookbookのバージョン管理を厳密にできるので、毎回同じサーバ環境が構築できる。あと、人が作ったCookbookを使い回せるので、車輪の再発明しなくてすむ。素晴らしい。 ただ、Berkshelfはバージョンが3系になって、Berkshelf用のAPIサーバを立てないといけないので、僕は未だに2系を使ってる。C
こんにちは、WP関連の記事を投稿させていただきました開発部の渡辺です。 開発の際に誰もが通るローカル開発環境構築についての話を今回まとめてみました。 準備 vagrantのインストールやvimの他にhomebrewにてtreeなどのインストール済を前提で進めます。 Chefを導入するとサーバ環境構築が自動化でき設定などの手間を簡略化させるために、パッケージインストールまでをやってみました。 Vagrantを使った仮想マシン環境は構築済みとし、homebrewなども導入済みとします。 そもそもChefとは? 簡単に説明するとサーバー管理ツール「Chef(シェフ)」です。 ファイルに記述した設定内容に応じて自動的にユーザーの作成やパッケージのインストール、設定ファイルの編集などを行うことができます。 何となくで良いのでChefの用語を覚える よく出てくる用語 Provisioning(プロビジ
全国1億人のサーバーワークスファンの皆さま、初めまして。2015年10月に入社しました法人営業課ソリューションアーキテクト(試用期間中)の浦底(@urasoko)と申します。試用期間中のくせにブログを書こうと下書きを寝かせていたら、人事にも課長にも先に出されてしまいました。くやしいです。これからどうぞお手柔らかによろしくお願いいたします。 Chefって さて、唐突ですがみなさん、Chefってご存知ですよね。そうですあのChefです。説明はここでは省きます。 サーバーワークスがSlackを導入しているのは皆さまご存知かと思います。そこに #chef_study ってチャンネルがあったわけですよ。そしたらなんとメンバーがゼロだったわけですよ、ゼロ。 おそるおそるPreviewしてみると2014年9月で更新が止まってるというなんと。 Chefはもうオワコンなのか そういえばもう12月ですね。12
インターネットウィキ インターネットだいすき! トップページ ページ一覧 メンバー 編集 Chef/初心者向けChef入門講座/attributeを使う 最終更新: internetwiki 2015年07月02日(木) 17:52:29 履歴 Tweet 目次 attributeを使う template機能の説明の時にこのようなレシピ(の一部のコード)を作成しました。 template "/etc/ntp.conf" do source "etc/ntp.conf.erb" notifies :restart, "service[ntpd]" action :create variables({ :ntp_servers => [ 'ntp1.jst.mfeed.ad.jp', 'ntp2.jst.mfeed.ad.jp', 'ntp3.jst.mfeed.ad.jp' ] })
San Franciscoで行われた#ChefConfに参加してきました。 忘れないうちに忘備録的に少しメモっておく。 Day 1 Awesome Postmortems by Dave Zwieback システム障害に対して素晴らしいPost Mortem(振り返り/報告書)の書き方に関する丸一日のワークショップ 前半 まずはチームに分かれて断片的且つ関連性の不明な情報を渡される。 例えば、 Tomは紫色の家の住人より短い Jimは両隣の住人より高い 赤色の家の隣人は子供が5人いる 各メンバーは情報を全部開示できないまま、ある不明確なタスクを時間内に完了させる必要がある。しかし、紙やモノを使って情報の整理をしてはならず、口頭による連絡のみなので当然情報は錯綜しタスクは未完のまま終了。 障害時の情報不足・体制不足のシミュレーション。Nosey Neighborsと言うゲームらしい。 その後
こんにちは! "ドワンゴ 弁当" で最近少し話題になったドワンゴエンジニア、の氏家です。 どんな人が中で働いてるのか想像しにくい方も多いかもしれませんが、普通の人・オタクな人・ギークな人・家庭持ち・リア充・イケメン、いろんな人が混じってる、楽しい会社だと思っています。 人と同じように 多種多様なサービス・システム・ミドルウェア・デバイス・プログラム言語を駆使してみんながニコニコできるものを産み出そうとがんばっていますので、こういったエンジニアリングに興味がある方は是非コチラからご応募ください!ニコニコ入社一時金制度もやっています。 そしていろいろと長くなってしまいましたが、今回でChef Solo話、完結したいと思います。今回はやってみて気づいた点・はまった点などを詳しく説明しますので、少しでもみなさんの参考になれば幸いです。 roleはjsonで書くべき? それともruby? recip
結論 シェルスクリプトをbashで書くのであれば、下記はどれも変わらない。 "execute" リソースで "command" "script" リソースで "command" "script" リソースで "code" "bash" リソースで "command" "bash "リソースで "code" 迷ったら"bash"リソースで"code"属性を使えばよい。 解説 ソースコードを見てみるとわりと一目瞭然 公式マニュアルを見ても全然わからないのですが、ソースコードを見れば意外と簡単に仕組みがわかります。 https://github.com/opscode/chef/blob/master/lib/chef/resource/bash.rb ちなみに私はrbenv経由でgem install chefしたので、下記のような場所にソースコードがありました。 ~/.rbenv/versi
本稿はChef Advent Calendar 2014の24日目の記事です。 ■Chefとは Chefとは、インフラの情報を集中管理するツールです。An Overview of Chefでは次のように述べられています。 Chef is a powerful automation platform that transforms complex infrastructure into code, bringing your servers and services to life. (略) Chef is built around simple concepts: achieving desired state, centralized modeling of IT infrastructure, and resource primitives that serve as building
knifeコマンドのめも sshオプション 自動的にsshでログインしてコマンドを叩けるオプション。管理サーバからリモートホストへまとめてコマンドを叩けるので便利。 webサーバにchef-clientを実行。 knife ssh "hostname:web*" -x user "sudo chef-client" -i /home/user/.ssh/id_rsa hostnameにマッチするディスク容量調べてみたり。 knife ssh "hostname:web*" -x srvadm "df -h" -i /home/user/.ssh/id_rsa # knife ssh "os_version:*" -x user "df -h" -i /home/user/.ssh/id_rsa web01 Filesystem Size Used Avail Use% Mounted on
伊藤直也さんのブログ(開発メモ#5 : Amazon Linux で knife-solo を使って chef-solo 実行 - naoyaのはてなダイアリー )でchef-soloが紹介され、Vagrantと一緒にちょっとしたビッグウェーブが巻き起こりました。 さらに昨日、入門Chef Solo - Infrastructure as Codeが達人出版からも発売開始。本が出版される前に一度挫折したchef-soloですが、この本のお陰でchef-solo童貞を卒業することができました。 続編も書きましたので、よろしければこちらもどうぞ 続編:さくらVPSの初期設定をChef Soloでやってみた〜サードパーティcookbookの使い方〜 | tsuchikazu blog なぜ挫折したかというと、Chefの公式ドキュメントが、量が多くてめちゃくちゃわかりにくいんです。naoyaさんの
Chef Provisioning¶ [edit on GitHub] Chef provisioning is a collection of resources that enable the creation of machines and machine infrastructures using the Chef Infra Client. It has a plugin model that allows bootstrap operations to be done against any infrastructure, such as VirtualBox, DigitalOcean, Amazon EC2, LXC, bare metal, and more. Chef provisioning is built around two major components:
要件 MySQL でグローバル IP をまたぐレプリケーションをやってみたい その場合、通信は SSL で暗号化したい 手始めに同一ホスト内から SSL を使って接続を試してみる 環境 Amazon Linux 手順 MySQL のインストール yum install -y mysql-serverChef のレシピ的には以下で... package "mysql-server" do action :install end service "mysql_service" do case node["platform"] when "CentOS","RedHat","Fedora","amazon" service_name "mysqld" else service_name "mysql" end supports :status => true, :restart => true,
はじめに 大抵、インフラのコード化を始めるのって新規システムとかになると思います。 たしかに、最初からやる方が途中からやるのに比べて遥かに敷居が低く、費用対効果も高いと言えると思います。 まあ、インフラのコード化に限らず、TDDとかもそうです。 新しいことを始めるのは最初からの方がやりやすい。 これが、既存システムの場合は 今動いているものが壊れたらどうする? 既に出来上がっちゃってるものにそんなにコストかけてやる必要ない とかいう感じで、コストやリスクと得られるメリットを天秤にかけた結果、敬遠されがちなのかなと思います。 たぶん、比較対象のメリットは以下の様なものでしょう。 自動化による人的コスト減 再現性のあるインフラによる追加開発やメンテナンスの効率と質の向上 モチベーションアップ でも、やったことがある人には判るかもしれませんが、実はもっと重要なメリットというか、意義があるんです。
Posted on Jun 24 Chef Server/Client構成の環境であればknifeコマンドを使用して、knife data bag create DATA_BAG_NAME DATA_BAG_ITEM --secret-file FILEで Data Bag Itemを暗号化することができますが、Chef Solo環境ではこれが使えません。 代替策としてChefのencrypted_data_bag_itemライブラリをロードしてencrypt_data_bag_itemメソッドを直接呼び出す方法がありますが、 knife-solo_data_bagを使うとこれが簡単に出来る、ということで、 Linuxユーザのユーザ名とパスワードをData Bagに格納しレシピからそれらを使用するところまでをやってみました。 環境 ワーク端末 : Mac OSX 10.9 Chef : 1
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く