Zuletzt geändert von Unbekannter Benutzer am 2015/06/10 13:53 What is this article about?This article does not only describe how to manage Docker images and containers and the complex environment inside them, but also shows how to leverage the power of their unique combination. After reading and understanding the article, you will be able to describe complex contents of a Docker image with Ansible
Ansibleのディレクトリ構成を決める際、プロダクション環境、ステージング環境、開発環境といった環境ごとに異なる設定を変更する方法でしっくり来るものを思いつかず、どうしたものかと悩んでいたのですが、今日見つけたブログ記事でそれもスッキリ解消したのでメモっておきます。 結論 まず結論を。プロダクション環境、ステージング環境、開発環境といった環境ごとに異なる設定する場合は、以下のように対応するのが良さそうです。 ディレクトリ構成は、公式ドキュメントに従う。 Best Practices — Ansible Documentation プロダクション、ステージング、開発など、ステージごとの変数切替は以下のブログを参考に、"group_vars"を利用して行う。 インベントリファイルの中に、"[production:children]"のようなグループすべてが属するグループを作ってしまい、そのグ
Ansibleのroleを実際に使ってみてわかったことを共有します。さらに便利に活用するtips等ありましたら、ぜひコメントをお願いします。 Ansibleのroleは単にインクルードの単位 最初roleという名前を聞いたときは、webserverとかdbserverといった役割を設定するのだろうと予想しました。が、Rolesのドキュメントを読んで、playbookの一部をインクルードして再利用するための仕組みだということがわかりました。つまり、playbookを分割・構成するコンポーネントという意味合いです。 もともとroleはなくてincludeの仕組みだけありましたが、より便利にするためにroleという仕組みが追加されたという経緯のようです。 例えばnginx, mysqlといった単位でroleを定義するのが良いです。さらにmysql/clientのように階層的なrole名を用いるこ
tl;dr 結論から言うと include_vars を使えばできる。 roles/*/tasks/main.yml: - include_vars: private_key.yml - name: prepare private key copy: dest=~/.ssh/id_rsa content="{{ private_key }}" mode=0600 - name: prepare ssh config copy: dest=~/.ssh/config src=ssh_config mode=0600 ただし色々とハマりポイントがあった。 vars/main.yml からインクルードしたかった roles/*/vars/main.yml でこういう風に書きたかったんだけど、 vars はただの YAML なので、これはできないみたい。
Playbook 内に直接値を定義せず、実行時に外部から値を渡したい場合、 --extra-vars 引数を使う方法と vars_prompt を使う方法があります。 --extra-vars Passing Variables On The Command Line http://docs.ansible.com/ansible/playbooks_variables.html#passing-variables-on-the-command-line ※ www.ansibleworks.com は使われなくなったようなので URL を修正 予め Playbook 内で変数を使用しておき、 ansible-playbook コマンドの実行時に --extra-vars オプションによって実際の変数の値を渡す事が出来ます。 Playbook は以下のような感じで定義します。 extra-
この方法を使えば、コンテナ内のファイルをリダイレクトして親ホストに保存したり、パイプで処理をつなげたりすることもできます。docker cp コマンドと比べると、プロセスの実行結果を取得できるという点で柔軟な処理ができそうです。 nsenter は jpetazzo/nsenter コンテナを使えば簡単にインストールできましたが、docker が標準対応してくれたことで事前準備が不要になり、さらに楽になりました。 追記 nsenter と違って環境変数が正しく設定された状態でコマンドが実行されるようです。以下のような方法で指定した環境変数を参照することができます。素晴らしい! Dockerfile に ENV で書いた環境変数 docker run の --link オプションにより設定される環境変数 docker run の -e オプションにより設定される環境変数
望月です。 Ansible Galaxyというサービスをご存知でしょうか。Ansibleの処理単位であるRoleの共有サービスです。ChefでいうとSupermarketのような感じでしょうか。 存在は知っていましたが使ったことは無かったので、今回試してみました。 ユーザ登録 Ansible GalaxyのWEBサイトにアクセスし、ユーザ登録を行いましょう。 Twitter、Facebook、Githubのソーシャルアカウントを持っていればそれと連携することができますし、個別にユーザ登録も行えます。 Ansible Galaxy | Find, reuse, and share the best Ansible content ユーザ登録が完了したら、「Browse Roles」や「Explore」でRoleを眺めてみましょう。EC2にJenkinsをインストールしようと考えていたのでje
今回は Ansible を使って Docker 上のコンテナの環境を構築します。 Macの環境に Boot2Docker を使って構築しても良いのですが、今回は Vagrant 内に Docker 環境を構築することにします。 ※1 ~ 3は前回と一緒です。 1. 環境 VagrantとVirtualBoxは事前にインストールしておいてください。 Max OS X 10.10 Homebrew 0.9.5 VirtualBox 4.3.18 Vagrant 1.6.5 2. Vagrant 環境の準備 CentOS 6 を使います。 $ mkdir ansible_test $ cd ansible_test $ vagrant box add centos/6 $ vagrant init centos/6 $ vi Vagrantfile $ diff Vagrantfile Vagr
Installation, Upgrade & Configuration Installation Guide Basics / What Will Be Installed What Version To Pick? Control Machine Requirements Managed Node Requirements Installing the Control Machine Latest Release via DNF or Yum Latest Releases Via Apt (Ubuntu) Latest Releases Via Apt (Debian) Latest Releases Via Portage (Gentoo) Latest Releases Via pkg (FreeBSD) Latest Releases on Mac OSX Latest Re
OSSのログ収集管理ツールFluentdを用いてログを統合管理している場合の懸念点として、ログの収集漏れが考えられます。 Fluentdでは、バッファ機能を活用することでログを収集漏れすることなく確実に収集することができます。 このバッファ機能のメカニズムを理解すべく動作検証した結果を紹介します。対象とするFluentdのバージョンは0.10.30です。 Fluentdとは Ruby実装のOSSのログ収集管理ツールです。 Fluentdは、Input、Buffer、Outputの3つのコンポーネントで実現されています。 様々な場所からログを収集、JSON形式に変換し(Input)、蓄積(Buffer)、様々な出力先にデータ出力(Output)します。 例として、あるサーバ(server01)のApacheのアクセスログを別のサーバ(server02)内にファイルとして出力する場合
Docker で SSH 接続可能なコンテナを作成する方法のメモ。コンテナの OS は CentOS です。 packer を使った方法は すでに先に書かれて いましたが、ここでは Dockerfile を使って作る方法を書きます。 ssh-ignorekey エイリアス コンテナを作り直しても、 known_hosts ファイルによって接続エラーにならないように以下のエイリアスを定義しています alias ssh-ignorekey='ssh -oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking=no' FROM centos RUN yum -y install initscripts MAKEDEV RUN yum check RUN yum -y update RUN yum -y install openssh-server
トイレの「Men」さんが「GitHubでContributeしてる」と話題になっています。見れば、「Men」と書いたトイレの壁に緑の四角いタイルがいっぱい……。こ、これはGitHubのContributions calendarやぁああああ! GitHub(ギットハブ)とは開発者が主に使っているプロジェクト管理(分散バージョン管理)のための共有Webサービス。GitHubでは活動の様子が一目で分かるよう1マスを1日として活動記録が表として一覧できるのですが、何もしていない日は灰色・少し活動した日は薄い緑色・たくさん活動した日は濃い緑色で示され、それがこのトイレのタイルにそっくりなのです。 こちらがトイレのタイル こちらがGitHubのContributions calendar 実はこのトイレ、@nanase_coderさんが長野駅で偶然見つけて撮影したもの。長野駅のトイレが今後、GitH
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く