そういうことだったんですね

いろいろ調べたり学んだりしたことを忘れないように書き連ねています

Docker - Docker Hub でイメージを共有する

(adsbygoogle = window.adsbygoogle || []).push({}); Docker Hub にイメージを共有することで、グループ内での共有が簡単になるようだ。 (公開範囲はGitHubと同じで、無料は public のみでprivateは有償) Signup する https://hub.docker.com/account/signu…

Docker - Dockerizing してみる

(adsbygoogle = window.adsbygoogle || []).push({}); Dockerfile からDockerイメージを作成して環境をためしてみた。 chef と同じように、コード(こちらはGo言語)で構成管理を記述できる。役割毎にDockerコンテナーを作成することで、1つのOS上で環境を構築…

Docker - 手軽に使えそうな仮想環境を試してみた

(adsbygoogle = window.adsbygoogle || []).push({}); Docker は Linux上で動作するコンテナー型と呼ばれる仮想化ソフトウェア。 ハイパーバイザー型に比べて、OS起動時のオーバーヘッドが少なくとても早い。いまさら聞けないDocker入門(1):アプリ開発者…

chef + vagrant - 仮想環境をラクにする

(adsbygoogle = window.adsbygoogle || []).push({}); vagrant (べいぐらんと) を使って仮想環境をラクに使えるようだ。 chef のテストに便利。設定ファイルを用意したり概念を理解したりで 敷居がちょっと高いが、慣れれば簡単だった。vagrantの使い方を説…

MySQL - バージョンアップしたら起動できなくなった

(adsbygoogle = window.adsbygoogle || []).push({}); Oracle にある RPM を使って MySQL を 5.6 にバージョンアップしてみた。 OSは CentOS 6.5。 起動してみると、エラーが。。。 # /sbin/service mysql start Starting MySQL.The server quit without upd…

SSL - パスフレーズを入力しないでApacheを起動するには

(adsbygoogle = window.adsbygoogle || []).push({}); Apacheの起動時に、鍵のパスフレーズを入力しないで起動する。 鍵のパスフレーズを設定していると、Apache起動時に鍵のパスフレーズの 入力が必要。ただし、OS起動時に自動起動できなくなってしまう。パ…

rails - CRUDのまとめ

(adsbygoogle = window.adsbygoogle || []).push({}); 新規作成 レコードを新規作成する。 create Entry.create title: "タイトル", body: "本文" INSERT INTO "entries" ("body", "created_at", "title", "updated_at") VALUES (?, ?, ?, ?) [["body", "本…

rails - クエリの基本(2)

(adsbygoogle = window.adsbygoogle || []).push({}); 特定のフィールドを取得する select を使う User.select(:name) SELECT name FROM "users" 複数のフィールド名を指定できる User.select(:id, :name) SELECT id, name FROM "users" フィールド名は,区切…

rails - クエリの基本

クエリの流れ オプションからSQL文を組み立てる SQLを発行し、データベースからデータを取得する 取得したデータから Rubyオブジェクトを生成する after_find コールバックを呼び出す クエリを行うメソッド Model.take(limit) レコードに格納されている最初…

rails - ActiveRecord の コールバック

基本 オブジェクトの生成・更新・削除のタイミングで呼び出されるメソッド トリガとなるイベント(validation,saveなど)の前(before)と後(after)に登録可能 コールバックはメソッドチェーンに追加される。 before_xxx で false を返すか例外を発生させると、…

rails - has_many through:

他対他 の関連を参照する 元々は他対他を直接参照できるようにするもの。 +-------+ +-----------+ +-----+ |Product| 1---n |OrderDetail| n---1 |Order| +-------+ +-----------+ +-----+例えば、特定の Order中の Productを調べたい場合など。 class Prod…

rails - ActiveRecord Migration のまとめ

基本 db/migration 以下に YYYYMMDDhhmmdd_XXX_YYY.rb のファイルを作成する Migrationのファイル名とクラス名は一致していないとダメ ファイル名: YYYYMMDDhhmmdd_create_users.rb クラス名: CreateUsers 自分で設定ファイルを作成可能だが 基本的には rail…

chef - git レポジトリを扱う

(adsbygoogle = window.adsbygoogle || []).push({}); 最近のアプリケーションは git clone してパスを設定するだけ、 というものも増えてますが、chefにも git リソースがあります。git のリモートリポジトリと同期をとり、更新を検出してくれる 点で execu…

chef - knife solo を使う

chef-solo を簡単に使うには knife solo を使います。 chef-serverを使わなくてもリモート実行できるので楽に一元管理できます。 前提 以下の準備が必要です。 ssh でリモートアクセスできること (パスフレーズ無が好ましい) sudo でroot権限になれること イ…

rails - 便利なコマンド

ルーティングを表示する rake routes で、HTTPのメソッド名・パスとコントローラ・アクションの対応テーブル を出力できる。 $ rake route Prefix Verb URI Pattern Controller#Action welcome_index GET /welcome/index(.:format) welcome#index posts GET …

rails - Mysql2::Error: Incorrect string value

(adsbygoogle = window.adsbygoogle || []).push({}); 次のエラーがでた場合。 Mysql2::Error: Incorrect string value: 原因を調べる おおむね、データベースの文字コードを確認する。 たいてい latin1 とかになっている。 $ mysql -uuser -p my_db mysql >…

rbenv - bundler と組み合わせてローカルにインストール

複数のアプリケーションでバージョン違いのライブラリを 入れるなどしたい場合、bundle を組み合わせて使います。 rails 4.0.2 を vendor/bundle 以下にインストールする例 Gemfile を作成 source "https://rubygems.org" gem "rails", "4.0.2" bundle insta…

chef - ohai でシステム情報を確認する

chef-client (chef-solo) で使用している、システムのインベントリ情報を JSON形式で出力するツールが用意されています。 $ ohai { "languages": { "ruby": { "platform": "x86_64-linux", "version": "2.0.0", "release_date": "2013-11-22", "target": "x8…

chef - レシピの基礎(4)

ユーザやグループを作成したい システムのユーザおよびグループを追加するには、userリソースとgroupリソースを使います。 user user "www" do comments "web server" home "/home/www" shell "/sbin/nologin" uid 200 gid 200 supports :manage_home => fal…

chef - レシピの基礎(3)

サービスの設定をする サーバ類の起動・終了などをchef-clientで管理するには service リソースを使います。次の例では、mysqld をマシン起動時に自動起動させるようにし、 かつ、mysqldサーバを起動します。 service "mysqld" do action [:enable, :start] …

chef - レシピの基礎(2)

コマンドを実行する execute リソースを使います execute "do command" do command "foo bar" end packageリソースなどとは異なり、冪等性(何度操作しても 同じ状態となる性質)が確保されません。not_if / only_if などで制御する必要があります。 execute…

chef - レシピの基礎(1)

一部を変数として使いたい Attributes を使います。設定方法は、/cookbooks/attributes/default.rb に、 以下のように指定します。もちろんruby の文法が使えます。attributes/default.rb default["ruby"]["version"] = "2.1.0" recipe中で使用するには node…

chef - サーバ構成を管理する

サーバの設定(ソフトのインストールやサーバの起動など)をスクリプト に記述して、更新対象のサーバで実行させるツールです。 このツールで、同じ役割のサーバの状態を同じに保つことができます。 (もちろんデータベースの中身やログなどは異なりますが)…

Ruby - rbenv で複数バージョンを切り替える(2)

前回の続き rubyのバージョンをプロジェクト毎に切り替える 例えば /home/hoge/app 以下で実行するスクリプトのrubyバージョン を切り替える場合 $ rbenv local 2.1.0とします。/home/hoge/app/.ruby-version が出力されます。 この中身を見れば使用するバー…

Ruby - rbenv で複数バージョンを切り替える(1)

(adsbygoogle = window.adsbygoogle || []).push({}); rbenv はrubyのバージョンを 切り替えるツールです。以前rvmを使っていましたがいろいろ環境変数やら を汚す悪いクセがあるのとrailsで推奨されているのでインストール してみました。 インストール方法…

ruby 落ち穂拾い

リリースされて1カ月後に ruby 2.1.0 の存在に気づき、時の流れを感じてます。 今回は落ち穂拾い。 手続きオブジェクトのリテラル表記 ->(arg) lambda と同じく手続きオブジェクトを返します。 sum = ->(a,b) { a + b } sum.call(1,2) # =>3 coffeescriptに…

DB - MongoDB(3) mongoid

mongoid ( MongoDB を ruby から使うライブラリの一種です。 ODMであり ActiveRecordと同じような記述ができるので rails から使うには便利。 単体でも使えます。 Rails4 から動かす アプリケーションを作成します。 ActiveRecords を使わないので -O (--ski…

DB - MongoDB(2)

DB - MongoDB(1) - そういうことだったんですね の続きです。 更新 update() を使います。第1引数に更新前のドキュメント、第2引数に新しいドキュメントを指定します。 ドキュメントは完全でなくてもかまいません。(一部を変更する) > db.books.update({ t…

DB - MongoDB(1)

MongoDBについて http://www.mongodb.org/ ドキュメント指向のNoSQLなDBMSです。スキーマが無いのでリレーショナルデータベースよりも楽ができます。 ウリはスケーリングの容易さとRDBの良さであるクエリや検索を充実させているところのようです。オープンソ…

Rails - ER図を作成するアプリケーション erd

Rails 3 のアプリケーションからER図を生成するライブラリが rails-erd です。 リバースエンジニアリングしたいときに便利なツールです。 Graphviz | Graphviz - Graph Visualization Software を使用していますので別途インストールが必要です。 ER図のサン…