タグ

chefに関するyo-11-06のブックマーク (24)

  • chefでインストール済みかどうかの判定にpacoを使うと便利 - UNIX的なアレ

    cookbookを書くときの冪等性 cookbookはインストール時だけでなく、何度実行しても同じ状態に保たれることが重要視されます。 chef業界ではこれを冪等性(べきとうせい)と読んでいたりします。これは設定ファイルやパッケージのインストールなど、すべてに当てはまります。 例えば、パッケージシステム経由でvimをインストールするようば場合のrecipeは以下のようにして書きます。 package 'vim' このようにすることで、それぞれのディストリビューションにあったパッケージシステムをつかってvimをインストールしてくれます。当然、二重にインストールされることはありません。 sourceからインストールするcookbook たとえばCentOSにphpをパッケージ経由でインストールすると、ちょっと古いバージョンのものがインストールされてしまいます。 新しいバージョンを使いたい場合は

    chefでインストール済みかどうかの判定にpacoを使うと便利 - UNIX的なアレ
    yo-11-06
    yo-11-06 2014/01/15
    めっちゃいい。自前でゴリゴリ書いてたやつこれ見て直そ・・
  • Vagrantのコアの挙動を変更する方法

    Vagrantは素晴らしいプロダクトであることは言うまでもないことですが、時にはVagrant自体の挙動を変更したいと思うこともあります。 たとえば、Vagrantでは作成したインスタンスにChefなどのProvisionerを使ってパッケージをインストールするときに、sudoコマンドを利用してユーザー権限からインストールを実行しますが、そのとき、インスタンス側ではrequiretty (コンソールデバイス必須) の無効化の設定がなされていることが前提になっています。 でも、これ最初からboxをそのように作って入れば良いのですが、そうじゃない場合(virtualbox以外のproviderを使ってクラウドサービス上にインスタンスを立ち上げるとか)は、いちいち自分でその変更を加えたbox(もしくはそれに準ずるもの)を作るのは面倒でかないません。 ということで、今回はVagrantのコアの挙動

    Vagrantのコアの挙動を変更する方法
  • Vagrant + AWS + Chef でサーバ構築自動化 - Develop with pleasure!

    AWS OpsWorks (DevOps アプリケーション管理・自動化) | アマゾン ウェブ サービス (AWS語)を利用してサーバの構成管理をしようとしたけど、問題になったのがOpsWorksで使われるChefのバージョン。現時点で9.x系なんだけど(2013/07/25にChef 11のサポートがリリースされてる)、opscodeが公開しているcookbookには結構10.x系以上じゃないと動作しないものが多い。 一々、9.x系で動作するようにcookbookを修正するのも面倒だし、opscodeが公開している沢山のcookbookを利用せずに自前で全部書くというのも避けたい。 chefのgemを最新にするcookbookを作って、それをOpsWorksで実行してChefのバージョンを無理やり切り替えられないかとも考えたけど、OpsWorks内でのchefを含めたgemの管理に

    Vagrant + AWS + Chef でサーバ構築自動化 - Develop with pleasure!
  • vagrantのchefによるprovisioningでgitのprivte repositoryを扱う - あんこの成長記録

    いろいろと要求と制限があったけど、わりときれいに解決したのでめも。 まずはssh forward agentの設定 # ~/.ssh/config Host * ForwardAgent yes $ eval `ssh-agent` $ ssh-add ~/.ssh/id_rsa Vagrantfileにもforward agentの設定を書く。 # Vagrantfile Vagrant.configure("2") do |config| # ... config.ssh.forward_agent = true # ... あとは、こんな感じにsudoersにSSH_AUTH_SOCKを設定してgit repositoryをsyncするrecipeを書いて、それをprovisionに指定すればOK。provision走らせると、githubのprivate repositoryからV

    vagrantのchefによるprovisioningでgitのprivte repositoryを扱う - あんこの成長記録
  • GitHubのPrivateリポジトリをChef経由でcloneしようとしたらハマった

    自分のinit.elや.zshenvはGitHubのPrivateリポジトリで管理しています。 masutaka.netでも同じ設定を使いたかったので、Chef経由(実際はKnife Solo経由)でgit cloneしようとしたら結構ハマったので、メモしておきます。 ぶっちゃけmasutaka.netに秘密鍵をおけば、ハマることはないです。でも セキュリティ的にあんまりなので、sshのforward agent機能を使い、ロー カルの公開鍵をリモートでも使うようにします。 (1) sshのforward agentを設定する# やり方は簡単で、ローカルの~/.ssh/configに以下を追加し、ローカルで ssh-addコマンドを実行するだけ。 Host masutaka.net ForwardAgent yes この状態でmasutaka.netにsshログインし、git cloneす

  • git Resource

    This page is generated from the Chef Infra Client source code. To suggest a change, edit the git.rb file and submit a pull request to the Chef Infra Client repository. All Infra resources page Use the git resource to manage source control resources that exist in a git repository. git version 1.6.5 (or higher) is required to use all of the functionality in the git resource. Syntax A git resource bl

  • Chefで公開したくないJSONデータを暗号化するためにDataBagsを利用してみた記録 · さよならインターネット

    May 20, 2013 ruby 1.8.7 chef 11.4.4 knife-solo_data_bag 0.3.2 2013/05/20 現在 knife-solo 0.2.0 では “knife solo data bag” は使えず https://github.com/thbishop/knife-solo_data_bag こちらを利用 参考 About Data Bags — Chef Docs Encrypt a Data Bag — Chef Docs knife-solo_data_bagのインストール # gem install knife-solo_data_bag # cd /root/chef/ ; pwd 暗号化用の鍵を用意 # openssl rand -base64 512 > encrypted_data_bag_secret 環境整備 # mkdi

  • さくらVPSを使って便利な開発環境を構築する - UNIX的なアレ

    開発環境は難しい 最適な開発環境をつくるのっていつも難しいなーと思います。サーバ側に入って開発する人もいれば、クライアント側のIDEあげてる人もいるわけで人それぞれです。 その人に特化した開発環境をつくるだけであればそこまで難しい話ではありませんが、チームでの開発となるとそのあたりをうまく解消するのがだんだん難しくなってきます。また、新しくサブドメインが増えたりなど開発環境も常にアップデートし続ける必要があります。 このあたりを、サーバエンジニアが手動でやってると死にます。悪しきDev/Opsの対立関係がうまれてしまうので、なんとかしないといけない。 というわけで、オフィス移転をきっかけに開発環境を作りなおしてみました。以下の3点からさくらVPSを選びました。 コストを抑えたい 最近さくらVPSに東京リージョンができた ローカルネットワーク接続できるようになった 新規開発環境をつくる上での

    さくらVPSを使って便利な開発環境を構築する - UNIX的なアレ
  • 【AWS】JenkinsとserverspecでChefのテストを自動化する | DevelopersIO

    はじめに こんにちは植木和樹です。相変わらずCloudFormationとChefな毎日を送っています。そのおかげで、最近は実験用サーバを設定するときにも極力手作業はなくし、CloudFormationやChefを使って自動化・省力化する習慣がつきました。以前作ったCookbookを使用して、コマンド1つで新環境が構築されたときって気分いいですよね。 さてChefのCookbookが増えてきて徐々に再利用が進んではいるのですが、Cookbookを作成してから数週間もすると「当にこのクックブックはまだ動くのかな?」と不安になってきます。ここはやはり、Cookbookが正しく適用されることを継続して保証する仕組みがほしいところです。 日はChef Cookbookのテスト自動化の一例として、JenkinsからEC2を起動してからchef-soloを使ってCookbooksを適用し、その後s

  • Vagrant + Jenkins の CI を AWS でも回す - naoyaのはてなダイアリー

    昨晩 Jenkins と Vagrant で CI だ、と書いたら という反応があった。確かに、可能なら物理サーバに依存しない形でテストできるとより嬉しい場面もありそうですね。 しかしそこは Vagrant。Vagrant はバージョン 1.1 から、バックエンドを VirtualBox だけでなく AWS (EC2) などの IaaS を指定して仮想サーバーを作ったり壊したりできるようになっています。詳しくは http://d.hatena.ne.jp/naoya/20130315/1363340698 この辺を。この機能を利用すれば昨日の Jenkins + Vagrant のフローをほとんど変えずに、EC2 のインスタンスでのインテグレーションテストができそうですね。 速見もこみち「では、早速やっていきましょう。」 Multi VM でローカル/リモート両対応に せっかくなので Vi

    Vagrant + Jenkins の CI を AWS でも回す - naoyaのはてなダイアリー
  • 今日から使い始めるChef

    今日から使い始めるChef 2013-03-29 Xtone Ltd. ピザ会�(without pizza><) Aki / @nekoruri Read less

    今日から使い始めるChef
  • ChefでCookbookを作成するときのちょっとしたコツ 9選 - インフラエンジニアway - powered by HEARTBEATS

    こんにちは。斎藤です。 Chefで構築の自動化ができる事はわかっていても、Cookbookをどう記述すればいいのかピンとこない場合があります。そんなときに使えそうなコツをピックアップしてみました。 「Chefを使ってみたいけどいまいちとっかかりがわかりづらい」「あれ、これはどうやるんだ?」、そんなときにご覧頂けたら幸いです。 ※Chef 10.16.2で確認しました。また、RHEL, CentOSで利用する事を前提に説明しています。 Cookbookに同梱したRPMファイルから直接インストールする cookbook_fileとpackageリソースを組み合わせて実行します。 下記の例は、MySQLサーバをRPMファイルを用いてインストールします。 "MySQL-server-5.5.29-1.el6.x86_64.rpm"ファイルをあらかじめ "files/default" 内に保存します

  • Chef の サードパーティ Cookbook を利用して、yum のリポジトリを追加してみる

    2013/05/17 この記事は書かれてから1年以上が経過しており、最新の情報とは異なる可能性があります techChefVagrantvirtualization よーし、いろいろアプリケーションのインストールの自動化しちゃうぞー! と思っていましたが、 先に試しておいた方が良さそうなものがあったので、そちらを先にやります。 yum のリポジトリの追加RPMLinuxディストリビューション、つまり CentOS だったり、 Fedora などの Linux のディストリビューションでは、 yum (Yellowdog Updater Modified) と呼ばれるパッケージ管理システムが採用されています。 yum に限らずですが、ソースコードから毎回インストールするのはかなり骨の折れる作業だったりします。 (もちろんやったことない場合には、絶対経験しておくべき作業ではあると思うのですが

    Chef の サードパーティ Cookbook を利用して、yum のリポジトリを追加してみる
  • Chefでサーバのセットアップ・管理作業を楽チンにしよう~実践編その2~

    前回紹介したスパムメールがさらに進化して「メアド変えたのでよろしく!」的な内容になってて、この人らPDCA実践してるわ―、と感心してしまったhiroshiです。 「3.レシピを書いたりする」の途中で終わった前回の続きです。 phpのインストールに必要なパッケージをインストールするところで終わっていましたので、次はphpのインストールです。 ここでphpをインストールする条件として インストールされてない 規定のバージョンと違う 想定のコンパイルオプションと違う 場合にインストールし直してね、と定義したいと思います。 主なところはこんな感じです。 {chef-repo}cookbooks/php/recipes/default.rb # バージョンのチェックを行い、バージョンが想定と違っていたらインストールを実行する # サーバ稼働中の予期しないアップグレードを防ぐため、/usr/local

    yo-11-06
    yo-11-06 2013/12/07
    Versionチェックしてインストールし直すの便利そう
  • Chef を始める #1 – 概要、Chef Server を EC2 上にインストール、Workstation の設定まで | DevelopersIO

    Knife コマンドで、Cookbook や Recipeを 操作したり、Chef Server に支持をしたりする環境です。 Node Chef Server が管理するマシンです。 Chef Server で管理している Cookbook や Recipe 情報を Node 上の Chef Client が取得して、そのタスクを実行します。 今回の構成イメージに置き換えると、以下のような感じ。 今回は、Chef Server のインストールから Workstation の設定までやっていきます。 Chef Server のインストール 事前準備 OSは、Amazon Linux を選択。(small インスタンス以上がいいです。理由は後述。) セキュリティグループで、ssh、http、https を開放します。 最新バージョンは、11.0.6 なのでこれをインストールします。 http

  • chef-soloで作業環境構築の自動化 - ひげろぐ

    さくらのVPSを契約して放置しておいたままだったので、これを機に環境構築をしてみることにした。 なお現状はユーザーakahigeの追加とsshの設定だけ済ませた状態になっている。 すべての設定はChef経由で行うこと というルールでChefで同じ環境をいくらでも作れるものを目指してみよう。 Chefサーバーのセットアップはめんどくさいのでchef-soloでがんばる所存。 Rubyのインストール とはいえChefの動く環境はChef以外で作らないといけない。 このあたりを省略するならシェルスクリプトによる自動化か、Chefが動くところまでセットアップした仮想マシンのイメージを使うほかなさそうだ。 必要なパッケージのインストール $ wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.r

  • Vagrantで簡単仮想マシン構築

    VagrantはOracle VirtualBoxを利用した仮想マシンをコマンドラインから作成してくれるソフトウェアだ。 設定ファイルをRubyで書くことができ、Chef等とも連携できるので、開発環境をコマンドライン一発で作成することができる。更にはCapistranoと組み合わせてアプリケーションのデプロイも一括で行うことで完全自動でいつでもテスト環境をつくれたりもする。 仮想マシンを捨ててしまってもいつでも再構築できること、誰のところにでもすぐ同じ状態に展開できることは開発を進める上で非常にメリットがある。 以下ではまずはVagrantを利用した簡単な仮想マシン構築の手順を説明する(当に説明したい内容はもっと違う話なのだが追って別のエントリで書いていくことにする) Oracle VirtualBoxのインストールhttps://www.virtualbox.org/にアクセスし左ナビ

    Vagrantで簡単仮想マシン構築
  • ChefでApahceとPHPをソースインストールするレシピを書いてみた - 初めてのシステムと日記

    ■さくらVPSにChefをインストール - 初めてのシステムと日記 http://bosssato.hatenablog.com/entry/2013/06/23/135552 前回の記事でさくらVPSにChefをインストールしました。 今回はChefを使ってApache、PHPをソースインストールするレシピを書いて実際にインストールしてみます。 (package使えば入るっぽいですが、たぶんyumインストールな気が。。) 今回の内容は私のGitHubに公開しているので、そちらを参考にして頂ければです。 (というのを前から言ってみたかった。) https://github.com/bossato/chef リポジトリ作成 まずは今回のレシピを格納するリポジトリを作成します。 // chefというリポジトリを作成 $ knife solo init chef クックブック作成 次にApach

    ChefでApahceとPHPをソースインストールするレシピを書いてみた - 初めてのシステムと日記
  • chef でゼロからサーバ構築をやってみる - ロックとチュウーハイとこりんがるな日々

    サーバ構築は開発マシンであるmacから「knife-solo」でサーバ構築を行います ※knife-soloの設定は以下の記事をに書いています knife-soloを設定して開発マシン(mac)からchef-soloを実行する 設定を行うサーバは「sakura vps 1G」です、osはデフォルトの「centos6.3 x86_64」です サーバは単純なLAMP環境です 以下構築のログになります、なお今回はできるだけopscode communityに公開されているcookbookを使っていこうかと思います opscode community またサーバにログインするのは確認のみで設定をするのはすべてchefで行う予定です 構築ログ chef を実行するユーザを作成 この作業のみサーバで実行する $ ssh [ipaddress] -l root # useradd chef # pass

    chef でゼロからサーバ構築をやってみる - ロックとチュウーハイとこりんがるな日々
  • サーバー設定ツール「Chef」の概要と基礎的な使い方 | さくらのナレッジ

    はじめに 近年注目されているサーバー管理ツール「Chef(シェフ)」は、ファイルに記述した設定内容に応じて自動的にユーザーの作成やパッケージのインストール、設定ファイルの編集などを行うツールだ。今回はこのChefについて、基的な環境構築方法と使い方を紹介する。 前回はサーバーの設定管理ツールとして「Puppet」を紹介したが、今回紹介するChefは、このPuppetと人気を二分するサーバー設定管理ツールだ。 Chefは米Opscodeが開発しているオープンソースソフトウェアで、Rubyなどのオープンソースな技術を使って実装されている。ライセンスはApache License 2.0だ。同社はChefにいくつかの機能を追加した有償版の「Private Chef」やクラウド型の「Hosted Chef」といったサービスも提供しているが、記事ではオープンソース版のChefについて紹介する。

    サーバー設定ツール「Chef」の概要と基礎的な使い方 | さくらのナレッジ