Run mackerel-agent as a Nomad job
nomad

Run mackerel-agent as a Nomad job

最近ブログを動かしている環境を単一のサーバーから Nomad クラスターへと変更しました。Nomad クラスター上で Ghost ブログを動作させる以前からサーバーの監視を Mackerel を用いて行なっており、今回もクラスターを構成するノード上で mackerel-agent を起動し、監視を行います。ただし、 Nomad のジョブとして動かしてみます。Nomad のジョブとして mackerel-agent を動かす今までは単一の VPS を使っていたので mackerel-agent は普通にサーバーにインストールしていました。CentOS / RedHat にインストールする - Mackerel ヘルプ今回 Nomad を使うにあたりどのように mackerel-agent

  • Lorentzca
    Lorentzca
2 min read
Running Ghost blog on Nomad Cluster
nomad

Running Ghost blog on Nomad Cluster

このブログは数年間単一のサーバーで稼働していました。学習も兼ねてわざわざ自前でサーバーを運用していたのですが、最近新しい構成に移したくなり、Kubernetes の流行もあってクラスターやマイクロサービスといった時代の流れに乗るべく、Nomad クラスターへの移行を行いました。Nomad クラスターの作成までは下記記事にまとめています (インフラやクラスターの設定等はここからさらに変更しています)。Nomad クラスターを作成する今回はこの Nomad クラスター上で Ghost を動かすところまでをまとめます。構成以下の通り、DigitalOcean のマネージドロードバランサー配下に Droplet を 3台配置し、クラスターを構成しています。クラスターを構成するノードではそれぞれ Nomad と Consul が稼働しており、Consul でサービスディスカバリーを、Nomad でワークロードオーケストレーションを行なっています。稼働しているジョブNomad

  • Lorentzca
    Lorentzca
7 min read
Vuls on CircleCI
vuls

Vuls on CircleCI

Vuls 祭りで Vuls モチベーションが上がったので何かやってみよう! Vuls祭り#3に参加してきました というわけで CircleCI から Vuls を定期実行してみました。 脆弱性の継続的インテグレーション! やり方 主な方針。 vuls, go-cve-dictionary, goval-dictionary 全部入りの Docker イメージを用意する 公式で各コマンドの Docker イメージがあるがこれを使わない理由は後述 CircleCI 2.0 の Scheduled Workflow を使って定期実行する vuls, go-cve-dictionary, goval-dictionary

  • Lorentzca
    Lorentzca
2 min read
Moved from Arukas to hyper.sh
arukas

Moved from Arukas to hyper.sh

Arukasのベータサービスが終了したので移住先を探さねばなりません。 Arukas βサービス提供終了に関するお知らせ – Arukas そこで、少し前に会社のSlackでDockerマンが呟いてるのを見てオッとなったhyper.shを使ってみます。 Hyper.sh - On-demand Container, Per-Second Billing hyper.shもArukasのようなContainer-as-a-Serviceで、特徴は通常のLinuxコンテナは同一ホスト上のカーネルから複数立ち上げるのに対し、hyper.shはコンテナ毎に独立したカーネル上で動かしている点です。これにより、セキュアなコンテナ環境の提供を可能にしているようです。 また、コンテナの利点である起動スピードを殺さないように特別なハイパーバイザが使われているようです。 What is Hyper.sh | Hyper.sh User Guide あとはDockerボリュームを使えるのがありがたい(Arukasはβ版なのもありボリュームを使えなかった)

  • Lorentzca
    Lorentzca
5 min read
Automatically build Docker images
docker

Automatically build Docker images

Docker Hubには自動ビルド機能があって、GitHubに対して行われたアクション(ブランチの作成、マスターへのマージ)を契機にDocker Hub側でイメージの自動ビルドを走らせることが出来ます。 以下のようなメリットがあります。 Docker HubにDockerfileを設置することができる GitHubリポジトリのdescriptionやREADMEを読み込んで自動的にShort DescriptionとFull Descriptionを埋めてくれる イメージに対し自動でタグ付けしてくれる 手元でビルドを実行しpushする手間が省ける Dockerfileはこんな感じで表示されます。 今回は以下のような前提のもと、設定を行いました。 既にGitHubリポジトリが存在している 大まかな流れは以下です。 GitHubとDocker Hubを接続する Automated Buildの設定をする 1回目のビルドを手動で行う 自動ビルド設定の手順 GitHubとDocker Hubを接続する 以下のようにsettingsから設定します。 Automated Buildの設定をする 以下のように設定していきます。Docker

  • Lorentzca
    Lorentzca
3 min read
AWS CLI on Docker
aws

AWS CLI on Docker

先日パイセンとAWS CLIをCircleCIから実行したいときにawsコマンドが使えるdockerイメージがあれば便利かもねみたいな話をしたので作ってみました。 既に同様のものはDocker Hubにありましたが最近自分でDockerイメージ作っていなかったのもあるので練習も兼ねて…。 GitHub - lorentzca/aws: AWS CLI on Docker. Docker Hubはこちら。 lorentzca/aws 用途としては以下のような場合に使いたい。 CircleCIなどで手軽にawsコマンド使いたい場合に使えそう Dockerから実行したい(環境を汚したくないとかで) pip入れるのが昔より楽だったので特に躓く箇所はなかった。 FROM alpine ARG pip_installer="https://bootstrap.pypa.io/get-pip.py&

  • Lorentzca
    Lorentzca
1 min read
Use argument in Dockerfile
docker

Use argument in Dockerfile

Dockerfile内で例えば RUN wget https://releases.hashicorp.com/consul/0.7.2/consul_0.7.2_linux_amd64.zip みたいなことをする場合、バージョンの部分を変数にできないか調べた(バージョン上げる度に複数ヶ所直すのが面倒)。 ARGインストラクションを使えばよさそう。 Dockerfile reference - ARG ARGインストラクションはdocker build時に使用可能な変数で、コンテナに環境変数を設定するENVインストラクションとは性質が異なる。 Dockerfile reference - ENV

  • Lorentzca
    Lorentzca
1 min read
Deploy Docker images to Heroku
arukas

Deploy Docker images to Heroku

herokuに好きなコンテナデプロイ出来るようになったらしいので試した!! この記事を受けて試してみた 会社で遊んでた(定時後ですよ!)ので社内向けのqiita teamに書いたんだけどべつに機密でもないので個人ブログに移す! 先に結論 herokuはあくまでPaaSであり、CaaSではない! 確かに好きなコンテナプッシュできるが、 あくまでWebアプリケーションのデプロイ方法の1つとして提供された機能 であり、 なんでもかんでも動かせるわけではなさそうだった(dnsサーバー立てたりvault立てたりはできなそう。pushまではできるけど) ※ もし動かせたらすまん → 動いたw ↓ 結論を書いたものの… コメントでvault動いた報告 (´°̥̥̥̥̥̥̥̥ω°̥̥̥̥̥̥̥̥`) 感謝 (´°̥̥̥̥̥̥̥̥ω°̥̥̥̥̥̥̥̥`) CaaSじゃねーか!(怒) 以下(早とちりした)結論に至るまでの道のり 任意のコンテナをプッシュしてみる ほんとに任意のコンテナプッシュできるのか!?vault乗ったコンテナプッシュしちゃうよ! https://devcenter.heroku.

  • Lorentzca
    Lorentzca
4 min read
Docker for Mac private beta
docker

Docker for Mac private beta

Docker for Macのプライベートβ招待きた! インストール時、defaultってvmイメージがあると中にあるコンテナのイメージを持ってきてくれた $ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS default - virtualbox Stopped Unknown dev - virtualbox Stopped Unknown スタート画面 メニュー。メニューのDashboardはkitematic起動だった mac上で直接docker動いてるv $ uname Darwin $ pgrep -fl

  • Lorentzca
    Lorentzca
3 min read
Instance of Arukas is restarted on a weekly
arukas

Instance of Arukas is restarted on a weekly

Vault on Arukasで試してから、arukas使っているんだけど、 たまにコンテナURLやポートが変わっているし、データも消えている。コンテナが再起動しているような… やだな〜、こわいな~と思い運営さんに右下からメッセージを送ろうとしたら… 右下の窓はチャット的なサポートツールではなく、ヘルプの検索窓だった! 気を取り直し「再起動」で検索してみると、

  • Lorentzca
    Lorentzca
1 min read
Vault on Arukas
docker

Vault on Arukas

Vaultをdockerで動かしてみた GitHub - Lorentzca/vault_on_docker: use vault on docker DockerHub - lorentzca/vault_on_docker これをプロダクションぽい感じで動かしたくって、herokuを使って見ようと思ったんだけど色々制約があり(というか好きに作ったコンテナを動かすのはherokuの使い方じゃない感じ)のでなんかないかな〜と思ったらArukas|Dockerホスティングサービスなるものが! まだβ版で恐らく今後は有料になりそうなプランもまだ無料で使える こんな感じ 簡単にコンテナを動かせるのでいい感じだった dockerhubにあるvaultのイメージを指定したりポートを指定したり。環境変数やコマンドも必要なら設定できる 立ち上がるとurlが発行される こんな感じでvaultが使えるようになる! $ curl -s -X

  • Lorentzca
    Lorentzca
1 min read
coreosのisoイメージファイルからdockerベースイメージを作ってみた
docker

coreosのisoイメージファイルからdockerベースイメージを作ってみた

この記事はフィードフォースエンジニア Advent Calendar 2015、7日目の記事です。 6日目はtjinjin氏のオフィス移転に向けてインフラエンジニアが検討したことでした! 改めましてこんにちは。アウトドア派のLorentzcaです。 先日、会社の忘年会が中華レストランでありまして、私は体調がベストではなかったのですがそんなことは気にせず紹興酒をたくさん飲んだところ次の日体調も良くなり酒も残っていなかったので紹興酒は体にいいことがわかりました。これからも機会を逃さず紹興酒を口にしていこうと思います。 さて、今回の記事のネタとして、「coreosのisoイメージファイルからdockerベースイメージを作ってみた」を考えておりました。 既存のdockerのベースイメージから新しいイメージを作成する方法に関してはやり方を書いた記事もたくさんあり、わかりやすい公式のドキュメントもあるのですが、 大元となるdockerベースイメージそのものの作成方法に関してはあまり情報がなく(あるにはあるのですが特定のディストリビューションに限定されている)、面白そうだったからです。 しかし!何の成果も得られませんでした!! というのは言い過ぎで、ちょっとは得るものもあったので記事化に踏み切ります!!! 未練がましく記事書きながら色々試していたらうまく行ったので当初の予定通り「coreosのisoイメージファイルからdockerベースイメージを作ってみた」をお送りします。 環境 作業環境 Mac OSX El

  • Lorentzca
    Lorentzca
4 min read
Trying out Kitematic
mac

Trying out Kitematic

DockerからKitematicというプロダクトがリリースされたよ〜とメーリングリストで来たのでインストールしてみた インストールする前は The easiest way to use Docker on your Mac. という文面しか見ていなかったので、boot2docker使っていたんですが、乗り換えられるかなというイメージを持っていた 実際はDockerコンテナを非専門家でも使えるようにした学生プロジェクトKitematicをDockerが買収 の記事にあるように、非専門家向け インストール 公式サイトからzip落としてきて展開するだけ(Kitematic(Beta).appが出てくる) もしくはbrew cask使って入れられるっぽい(試してない) $ brew search kitematic Caskroom/cask/kitematic 起動

  • Lorentzca
    Lorentzca
2 min read
Create docker cluster by fig
docker

Create docker cluster by fig

figでdockerのクラスタを作成するチュートリアルをやった! Macでやった webとdbで別々のコンテナを使って、railsを動かす boot2dockerインストール・起動 インストール $ brew install boot2docker boot2docker立ち上げ $ boot2docker init $ boot2docker start $ $(boot2docker shellinit) figインストール $ brew install fig Dockerfile作成 rubyのイメージを使う 必要なパッケージ入れる myappディレクトリ作成 ワーキングdirectoryを設定 ローカルのGemfileをコンテナに配置 bundle installする myappディレクトリをコンテナに配置 FROM ruby RUN

  • Lorentzca
    Lorentzca
2 min read