サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ブラックフライデー
hidemium.hatenablog.com
この記事は NIFTY Cloud Advent Calendar 2015の 20 日目です。 ESXi上で動作するOSイメージを自動ビルドするのにPackerが使われています。 LinuxのOSイメージをPackerでビルドする事例はありますが、Windowsについてはまだまだ少ないと感じており、今回は、WindowsのOSイメージをPackerでビルドする方法を紹介します。 構成 Packer 0.8.6 Windows Server 2012 R2 (ビルド対象OS) Ubuntu 15.04 (作業OS) ESXi 5.5U3 (Nested) VMware Workstation 11.1.3 ※Workstation上に、UbuntuとESXiを稼働させています。 インストール Packerのインストール まず、Packerのインストールを行います。 $ wget https
VMware vSphere APIのPythonバインディングであるpyvmomiを利用して、スクリプトから仮想マシンを操作することができます。しかし、pyvmomiのスクリプトを開発するため、vCenterの開発環境を用意する必要がありますが、構築には手間がかかります。そこで、今回はvCenterをシミュレートするvCenter Server Simulator (VCSIM)を試してみました。 ※VCSIMはVMwareの公式サポートは受けられないため自己責任となります。 構成 Windows7 VirtualBox 4.3.26 VMware vCenter Server Appliance 5.5 Ubuntu 14.04 Docker 1.5.0 インストール 以下のリポジトリを参考に導入を行ったのですが、Packerを使って、vCSAのovaファイルからVagrantで使うV
バージョン管理を行うため、CentOS6.5にGitをインストールしてみました。 インストール 公式サイトにある手順を参考にGitをインストールします。 最新版のGitを使用する場合は、ソースからのインストールしますが、今回はyumからインストールしました。 $ yum -y install git 初期設定 ユーザの登録 まずは、Gitのユーザ名とメールアドレスを登録します。 「--global」オプションを付けることで、「~/.gitconfig」に情報が格納されます。 $ git config --global user.name <ユーザ名> $ git config --global user.email <メールアドレス> $ git config --list リモートリポジトリの作成 リモートリポジトリを作成します。 リモートリポジトリへのアクセスは、一旦Localプロトコ
この記事は Play framework Advent Calendar 2014の 14 日目です。 前回、Ebeanを使ってリレーションを持つテーブルの操作を試してみました。しかし、多対多のリレーションについて、更新時に関係付けしたインスタンスが削除される事象が発生し、しばらくはまってしまいました。今回は、その時に確認した内容についてまとめました。*1 構成 Windows 8.1 Java 7 Play Framework 2.2.3 サンプル用のアプリについて ソースコードはhideakihal/play-ebean-relation · GitHubで公開しています。 ManyToManyを試すために以下のの2つのModelを用意しました。 Message・・・メッセージを管理 Member・・・ユーザ名を管理 models パッケージに,Message.javaとMember.
VMware上のUbuntuサーバでDockerのイメージを色々作っていたら、ディスク容量がいつのまにか少なくなっていたので、ディスク容量の拡張を行いました。 構成 Ubuntu 12.04 ※上記のサーバはVMware ESXi 5.1上で動作しています。 VMware サーバを停止 サーバのハードウェアを追加するため、サーバをシャットダウンしておきます。 $ sudo shutdown -h now 仮想ディスクを拡張する 対象の仮想サーバを右クリックし、「設定の編集」をクリックします。 ハードウェアタブ>追加ボタンをクリックします。 ハードウェアの追加>ハードディスクを選択し、次へをクリックします。 新規仮想ディスクを作成を選択し、次へをクリックします。 追加するディスク容量とディスクプロビジョニングを入力し、次へをクリックします。 詳細オプションはなにも変更せず、次へをクリックしま
チャット上のHubotを通じて運用を自動化するChatOpsという運用スタイルが注目されています。ローカルでチャット上で動くHubotを試すために、HipChatクローンのKandanとHubotを動作するDockerfileを書いてみました。 構成 Ubuntu 14.04 Docker 1.3.0 Kandan 1.2 hubot 2.4.7 hubot-kandan adapter 1.0 Dockerfile Dockerfileを以下のように作成します。 ソースコードはこちら@githubで公開しています。 Dockerfileの構成 Dockerfileの構成は以下の通りです。 docker-kandan-hubot ├──Dockerfile ├──hubot │ ├──hubot-scripts.json │ ├──hubot.conf │ ├──hubot.sh │ └─
Dockerでどのようなコンテナが起動しているか、コンテナの状態を確認するためにWebUIを提供するツールがいくつか開発されています。今回は、Shipyardをインストールし、コンテナの状態がどのように確認できるのか試してみました。 構成 Ubuntu 14.04 Docker 1.3.0 Shipyard 2.0.3 Shipyardのインストール Dockerデーモンの外部接続を許可する必要があるので、/etc/default/dockerのDOCKER_OPTSに以下の内容を追加します。 $ vi /etc/default/docker DOCKER_OPTS='-H tcp://0.0.0.0:4243/ -H unix:///var/run/docker.sock'設定を反映させるため、Dockerを再起動します。 $ service docker restartShipyard
以前、sameersbn/redmineというRedmineのイメージを試してみましたが、アプリケーションとMySQLでコンテナを分離した場合、複数のコンテナ起動や、DBの作成、マイグレーションの実行が個別に必要となり手間がかかっていました。 そこで今回は、マルチコンテナ構成ツールであるFigを用いて、アプリケーションとMySQLでコンテナを分離した場合でも、Redmineを一括起動するDockerfileを書いてみました。 構成 Ubuntu 14.04 Docker 1.0.0 Fig 0.5.2 コンテナとDockerfileの割り振り Redmineの起動のためには、DBサーバ、アプリケーションサーバ、Webサーバが必要となります。これらを1つのコンテナの中で動かす事も出来ますが、安定性等を考え、以下のように2つのコンテナで動かす事にします。 DBコンテナ : MySQL APコン
DockerによるWebアプリのデプロイ方法をいくつか調べてみると、ビルド時間の短縮やメンテナンス性から、インフラレイヤーとアプリケーションレイヤーに分けて差分ビルドする方法が良さそうだったので、Play Frameworkアプリでデプロイを試してみました。 構成 Ubuntu 12.04 Docker 1.0.0 Play Framework 2.2.3 インフラレイヤー Java及びPlay Frameworkの実行環境までを構築します。 Dockerfileの構成 Dockerfileの構成は以下の通りです。 java ├──Dockerfile ├──id_rsa.pub ... 公開鍵 ├──play.sh ... 環境変数の定義ファイル ├──sources.list ... ミラーサイト一覧 └──supervisord.conf ... supervisorの定義ファイ
前回、Elasticsearchのインストールができたため、今回はinokappa/sensu-handler-metrics-elasticsearchを用いて、SensuからElasticsearchにDockerコンテナのメトリクスを転送できるか試してみました。*1 なお、Sensuのメトリクスの可視化にはGraphiteがよく使われていますが、FluentdではElasticsearchが使われており、サーチエンジンを使い分けるのは大変そうだったので、Elasticsearchにしてみました。 構成 Ubuntu 12.04: Sensu Server、Sensu Client Ubuntu 12.04: Elasticsearch ※上記はDocker 1.0.0上で動作しています。 Sensu Serverの設定 Sensu Server側でElasticsearchと連携する
継続的インテグレーション(CI:Continuous Integration)を行うため、CentOS6.5にJenkinsをインストールしてみました。 インストール JenkinsはJavaで動作しているため、Javaをインストールします。 $ yum -y install java-1.7.0-openjdk公式サイトにある手順を参考にJenkinsをインストールします。 $ wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo $ rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key $ yum -y install jenkinsJenkinsの自動起動の設定とサービスを起動します。 $ chk
Dockerfileを書く練習のため、今回は、sshdとMySQLの複数プロセスを起動するDockerfileを書いてみました。Dockerはプロセスを起動させるコマンドを1つしか指定できないため、プロセス管理ツールのSupervisorを使用しています。また、コンテナ内のデータベースファイルをホスト側に保存されるようにしてみました。 構成 Ubuntu 12.04: サーバ構築対象 ※Ubuntu 12.04はDocker 0.10上で動作しています。 Dockerfileの作成 Dockerfileを以下のように作成します。 $ mkdir -p docker/mysql $ cd docker/mysql $ vi Dockerfile FROM ubuntu:12.04 MAINTAINER hidemium # Ubuntu update ADD sources.list /et
前回、sensuでDockerコンテナを監視することができたため、今回はDockerコンテナの監視を可視化するための前段階として、最近注目されているサーチエンジンであるElasticsearchを起動するDockerfileを書いてみました。また、Elasticsearchのフロントエンドを提供するKibanaも合わせてインストールします。 構成 Ubuntu 12.04: サーバ構築対象 ※Ubuntu 12.04はDocker 1.0.0上で動作しています。 Dockerfile Dockerfileの構成 Dockerfileの構成は以下の通りです。 elasticsearch ├──Dockerfile ├──id_rsa.pub ... 公開鍵 ├──sources.list ... ミラーサイト一覧 ├──config.js ... Kibanaの定義ファイル ├──defau
前回、ChefからDockerコンテナにSensu Serverをインストールすることができました。そこで、今回はChefからDockerコンテナにSensu Clientをインストールして、Dockerコンテナが自動的に監視対象として追加されるか試してみました。 また、Clientの監視定義として、CPU使用率監視、メモリ使用率監視、ログ監視が設定されるようにしてみました。 構成 Ubuntu 12.04: サーバ構築対象 ※Ubuntu 12.04はDocker 1.0.0上で動作しています。 Dockerコンテナ 前回作成したDockerコンテナを使用します。 Sensu ClientのChefレシピ それでは、Sensu Clientをインストーするレシピについて見ていきます。 cookbookの構成 cookbookの構成は以下の通りです。 site-cookbook └──se
前回、ChefからDockerコンテナ内の起動プロセスを追加することが確認できました。そこで、今回はChefを使ってDockerコンテナに監視ツールのSensu Serverをインストールしてみました。 構成 Ubuntu 12.04: サーバ構築対象 ※Ubuntu 12.04はDocker 1.0.0上で動作しています。 Dockerコンテナ Dockerfileの構成は以下の通りです。 sshd ├──Dockerfile ├──sources.list ... ミラーサイト一覧 ├──id_rsa.pub ... Chef workstationの公開鍵 └──supervisord.conf ... supervisorの定義ファイルDockerfileを以下のように作成します。 supervisorの定義ファイルは、/etc/supervisor/conf.d/配下にも置くこと
Dockerの公式リポジトリにsameersbn/redmineというRedmineのイメージがあったので試してみました。 このイメージの面白いところは、アプリケーションだけでなくデータベースもコンテナにし、さらにデータファイルをコンテナから分離してるところです。 構成 Ubuntu 12.04: Docker 0.10.0、Redmine 2.5.1、MySQL 5.6 ※上記のサーバはVMware ESXi 5.1上で動作しています。 インストール MySQL まずは、以下のコマンドでMySQLのイメージをダウンロードします。 $ sudo docker pull sameersbn/mysql:latest次にMySQLのデータディレクトリをホスト側で保存するため、ホスト側でディレクトリを作成します。 $ sudo mkdir -p /opt/mysql/datadocker run
Chef SoloでRuby on Railsの環境構築ができたため、味を占めてRedmineの構築も自動化してみました。 Chefを動かすにはCentOS6にChef Soloをインストールするが必要なので、まず先にやっておきます。 Opscode CommunityでRedmineのCookbookを探してみたところ、redmine2というCookbookがあったためこれを使うことにしました。 今回、Chefで作成する構成は以下のとおりです。 Redmine Redmine 2.4.3 OS Ubuntu 12.04 データベース MySQL 5.5.37 Webサーバ nginx 1.1.19 Ruby 1.9.3-p484 まず、chef-repo配下にBerksfileを作成し、README.mdに指定のあったCookbookを設定します。 $ cd chef-repo/ $ v
Dockerが使えるようになったため、Jenkinsにより仮想サーバの起動から、サーバ構築、テスト、仮想サーバの廃棄までを自動化してみました。 やりたいこと 以下のように、Chefのリポジトリの更新をトリガーに、仮想サーバの起動から、サーバ構築、テスト、仮想サーバの廃棄までをJenkinsにて自動化します。 Chefのレシピをリモートリポジトリへgit pushすると、Jenkinsが通知を検知 JenkinsからDockerの仮想サーバ(コンテナ)を起動 起動が成功すれば、Chefを実行し、サーバを構築 サーバ構築が成功すれば、serverspecを実行し、サーバの状態をテスト テストが成功すれば、Dockerの仮想サーバ(コンテナ)を廃棄 また、Dockerの起動停止、サーバ構築、テストは全てSSH接続により行います。 構成 CentOS 6.5 : Chef、serverspec、J
このページを最初にブックマークしてみませんか?
『hidemium's blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く