Lorentzca

Lorentzca

Japan
End of Atlas free trial
terraform

End of Atlas free trial

\(o)/オワタ * Atlas | HashiCorp $ terraform plan Error reloading remote state: Unexpected HTTP response code: 400 Body: {"errors":["This feature requires Terraform Enterprise. Please contact sales@hashicorp.com to start or extend your trial."],"success":false} Freeプランだとterraform(のtfstate置き場として)使えないのよな…。泣きそう。 とりあえずS3に退避。諸々忘れてていったんまっさらにしてから始め直したいので、まずは既存のremote設定を消す(消さなくても出来ると思われる)。 terraform remote config -disable これでローカルの.terraform/terraform.
1 min read
Trying out Algolia
ghost

Trying out Algolia

2016/12/28追記 algoliaシリーズ * Install Algolia Search on Ghost * ghostブログにalgoliaの検索ボックスを導入する AlgoliaというSaaSの全文検索エンジンが良さそう。 * Algolia | Hosted cloud search as a service 料金体系。 * 無料 * 有料に比べ機能に制約がある * サイトに設置する際はAlgoliaのロゴを一緒に表示しなければならない * 有料 * 無料版に比べなんか多機能な感じ(こなみ) ブログに設置できないか試してみた。が、挫折!!!!!!!!!!!!!!! Algoliaの設定自体はできたんだけど、それをうまくサイトに組み込んで検索結果から該当のページに飛ばす部分はユーザーに任されていて、そこで死んだ。でもやったところまではメモる。 以下の内容はだいたいチュートリアルの流れに従っている。 Algoliaの設定 Algoliaの仕組みは、検索対象にしたいデ
4 min read
Configure mariadb client prompt
mysql

Configure mariadb client prompt

基本的にDBに直接入ることは無いけど、せっかくなので(?)プロンプトをカスタマイズしてみる。デフォルト状態だとこんな感じ。 MariaDB [(none)]> ライブで変更するにはPROMPTコマンドを実行する。 MariaDB [(none)]> PROMPT \U [\d] \r:\m \P>\_ PROMPT set to '\U [\d] \r:\m \P>\_' lorentzca@localhost [(none)] 10:21 pm> PROMPT単体で実行すると、初期状態に戻るので、試しながら気に入ったプロンプト探すのがよさ気。 lorentzca@localhost [(none)] 10:21 pm> PROMPT Returning to default PROMPT of \N [\d]> MariaDB [(none)
2 min read
Check maingun status on mackerel
ghost

Check maingun status on mackerel

ghostにはmailの設定がある。mailは今のところ、パスワードをわすれた時に再設定メールを送る際に使用される。バージョン0.8からはβ機能の一つのsubscribers機能からも使う(まだメール送信機能は無いっぽいけど)。 * Mail Configuration on self-hosted version of Ghost 送信元メールアドレスの設定方法はいくつかある。 * Mailgun * Amazon Simple Email Service * Gmail このうち簡単に試せそうなmailgunで設定していた。 こんな感じ。 mail: { fromaddress: 'lorentzca@ghost.ponpokopon.me', transport: 'SMTP', options: { service: 'Mailgun', auth: { user: 'mailgun username', // mailgun username
2 min read
How to use misfit link in shine 2
misfit

How to use misfit link in shine 2

misfitのshineを先日大磯ロングビーチでなくしてしまった。 プールではしゃいだ結果防水ソフトケースとミスフィットshineロスト!!!!!! — †幻影の処断者† (@lorentzca) 2016年8月11日 ちょうどいいので(泣)以前から欲しかったshine 2を買った!!! * MISFIT SHINE 2(ミスフィットシャインツー) | 製品情報 感想 * shineより若干大きい * バンドが前よりしっかりした作りになっている * タッチの反応がどちゃくそ良くなってる...! * ライトがカラフルになったのいいね * スマホ、家電とリンクできるようになったのいいね * 振動機能!目覚まし振動! * 電話とかメッセ来た時も振動 というわけでさっそくMisfit Linkと連携させるぞ!!と思ったんだけどshine2との連携方法が???ってなったのでメモる。 以上!はじめ見た目的に+ボタンを押して先進めたんだけど、+ボタンから設定していくのはFlashだけ対応だった。罠くさい。 注意点としては
2 min read
Export GPG Key
github

Export GPG Key

もう4ヶ月位前の話ですがgithubでgpg認証対応しましたね。 GPG signature verification · GitHub 設定したマシンと別のマシンでcommitしようとしても当然鍵がないので失敗しますね(同じgitのアカウントを使っていた場合)。そんな時の対応方法がメモに埋もれてたので晒す。一応gpg周辺ツールのインストール、鍵生成の所から書く。 gpg周辺ツールのインストール・鍵生成 インストール brew install gpg2 gpg-agent pinentry-mac 鍵生成 gpg --gen-key gitに設定 git config --global user.signingkey 取得した鍵名(pub) git config --global commit.gpgsign true git config --global gpg.program gpg2 ほかのマシンで使う場合 設定済みのマシンで鍵をエクスポート gpg -o sec.key --export-secret-key 設定したメー
1 min read
Perpetuate journal log
centos

Perpetuate journal log

journalログはcentos7のデフォルトでは/run/log/journal/以下に格納されるが、/runはメモリベースファイルシステムなので揮発的であり、再起動時には消えてしまう。 $ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/vda1 20G 4.2G 15G 23% / devtmpfs 236M 0 236M 0% /dev tmpfs 245M 0 245M 0% /dev/shm tmpfs 245M 304K 245M 1% /run tmpfs 245M 0 245M 0% /sys/fs/cgroup tmpfs
2 min read
Differentiate environments with ansible
ansible

Differentiate environments with ansible

ansibleでdigitaloceanの構成管理をしている。このときvagrantを使って試しながら本番に適用しているのだが、本番にしか適用したくない設定(mackerel-agentのインストールとか)、開発環境にのみ適用したい設定が出てきた。 それっぽいワードで調べてみたら、group_varsやhost_varsとwhenステートメントを組み合わせる方法が手軽そうだった。 * Multistage environments with Ansible – Ross Tuck * Inventory — Ansible Documentation * Conditionals — Ansible Documentation リンクを参考に以下のような感じでインベントリを設定した。 development [ponpokopon-vm] 192.168.33.10 ansible_ssh_user=vagrant ansible_ssh_private_key_file=.vagrant/machines/default/virtualbox/private
1 min read
Setting up virtual host by h2o
h2o

Setting up virtual host by h2o

h2oでバーチャルホスト切る設定。最初は以下のように書いてみたけれど、うまく動かなかった(最初に適合した設定しか読んでくれなかった)。 hosts: "ponpokopon.me":80": listen: port: 80 paths: "/": redirect: https://ponpokopon.me/ "ghost.ponpokopon.me":80": listen: port: 80 paths: "/": redirect: https://ghost.ponpokopon.me/ ドキュメント見たりブログ漁ったりしたが、80番を443番にリダイレクトする設定ばかりだったのであまり参考にならず…。listenディレクティブのportを抜いたりいろいろ設定の組み合わせを試した結果、以下の設定で動いた。最終的に参考になったのはここにある設定例。 hosts: "ponpokopon.me":<- ここ変えた
1 min read
Habitat Meetup #1
chef

Habitat Meetup #1

ちょっと前にChef社からの新しいプロダクト、Habitatがリリースされましたね。これがどういうものなのかイマイチピンとこなかったのですが、meetupが開催されるとのことだったので参加してきました。 φ(..) 当日の流れ 1. Chef Automateの話 2. Habitat考察 3. Chefconf 2016参加レポート 1. Chef Automateの話 前半はChef Automateの話だった。 Chef Automateとは、Chef社の各ツール(Chef, InSpec, Habitat, etc...)を統合し提供している包括的な管理ツール。 今回、例としてルートディレクトリにアクセスすると中身が見えてしまう問題のあるウェブページに対して、Chef Automateを使ってその問題の検知から修正、適用までの流れが紹介された。 問題の検知はChef Complianceが使われていた。Chef ComplianceはWeb管理画面があって、そこでInSpecというChef社のテストフレームワークをリモート実行したり、レ
3 min read
snsnap meetup
snsnap

snsnap meetup

先日snsnapさんのミートアップに参加してきました! https://www.facebook.com/events/930745110380652/?ti=icl 内容的には20人弱集まってバリスタがライブで淹れた美味しいコーヒーを飲みながら雑談するみたいな感じ 感想 会場がおしゃれなリビングだった♪ コーヒーについてはあんまりよく知らなかったんだけど、バリスタ氏スライドを見て面白かったので豆買いたい欲が出てきた バリスタ氏のお店にも遊びに行ってみよう snsnap自体初めて聞いたプロダクトだったんだけど、結構いろんな所で導入されていて今後見かけたら使ってみよう スタートアップのctoの方と話せた。みんな雑用係と言っていたw それだけ色んなことができるということなんだと思う 業界の人の話や情報交換の場というコンセプトだったが達成できたかは微妙かも…うろうろしながら雑談していた ただ、snsnapはawsだけで、しかもマネージドなサービスだけを使っていてインフラは管理画面ぽちぽちするだけ、サーバーレス最高みたいな話を聞いて改めて自分がこの先生
1 min read
Backup Droplet
digitalocean

Backup Droplet

このblogのbackupどうしようか考えていて、ghostはwordpressみたいにバックアッププラグインがあって毎日S3に転送、みたいなことはできない。 バックアップスクリプト書いてcronで叩こうかと思ったものの、どうせそのうちblog以外もなんか動かすしサーバーごとバックアップとることにした digitaloceanのdropletのバックアップを取る方法は2つある 1つはsnapshotで、もう1つはbackups。違いはいくつかあって、 snapshot backups 費用 無料 対象droplet費用の20% 自動 No Yes 電源 シャットダウンされる シャットダウンされない みたいな感じ 世代は4世代らしい。もし何らかの理由でバックアップが失敗した場合は、その分の料金は発生しないとのこと。(4世代中1世代のバックアップが失敗したら、費用はdroplet費用の15%になる) バックアップの周期は1週間毎で、タイミングは指定したウインドウ内で実行される その辺の話は、以下のフォーラム・FAQでされていた(digi
2 min read
You are running with an old copy of certbot that does not receive updates
certbot

You are running with an old copy of certbot that does not receive updates

letsencrypt使ってみようと思ってcertbotコマンドをインストールしていざ実行したら下記のようなエラー You are running with an old copy of certbot that does not receive updates, and is less reliable than more recent versions. We recommend upgrading to the latest certbot-auto script, or using native OS packages. 最新版なのになあとおもったらepelパッケージのバグっぽかった 解決方法 2016/07/13現在の方法。そのうちepelのメインストリームに取り込まれてメインストリームの最新版使えばよくなるはず certbot-0.8.1-1.el7をcertbot-0.8.1-2.el7にアップデートする(epel-testingリポジトリにリリースされているので注意)
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乗ったコンテナプッシ
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 docker 18665 /Applications/Docker.app/Contents/MacOS/com.docker.osxfs --addr unix:/var/
3 min read
To create `/var/run/h2o/` directory using systemd-tmpfiles
ansible

To create `/var/run/h2o/` directory using systemd-tmpfiles

h2oをインストールするansibleのタスクを書いた。ついでにh2oの実行ユーザーをh2oユーザーにしてみた(デフォルトはnobody)。しかし、h2oの起動に失敗する。 ログ見ると/var/run/h2oディレクトリへ書き込みできなくて起動失敗している。 * h2oインストール時(?)に/var/run/h2oが作成される(nobody:nobodyで) * h2o起動直後h2oユーザーで/var/run/h2o以下にpidファイルを作成しようとするが、オーナーがnobodyなので作成失敗→起動失敗 という流れ。 予めディレクトリを作成するタスク書けば良いと思ったけど微妙感が…。h2oの起動スクリプトをいじるのも、h2oアップデート時元に戻されそうだしダメそう。 そこで何かいい方法がないか探した所、systemdにsystemd-tmpfilesというものがあった! これはその名の通り、systemdのテンポラリなファイルを管理できる。/etc/tmpfiles.d/h2o.confのように、/etc/tmpfiles.d以下に定義ファイルを置く。
2 min read
Instance of Arukas is restarted on a weekly
arukas

Instance of Arukas is restarted on a weekly

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

Use bash parameter

bash parameterなるものを教えてもらったので試してみる 変数のデフォルト値を決められて、もし環境変数とかで指定されていればそれを使ってくれるらしい! $ man sh ... ${parameter:-word} Use Default Values. If parameter is unset or null, the expansion of word is substituted. Otherwise, the value of parameter is substituted. ... 実験用にこんなスクリプトを用意 #!/bin/sh echo ${MY_PARAMETER:-'is default parameter'} 実行 $ ./param.sh is default parameter MY_PARAMETERに値をセットしてみる $ export MY_PARAMETER=
1 min read
Using HashiCorp's Vault with Ansible
ansible

Using HashiCorp's Vault with Ansible

ansibleのプレイブック内にある機密情報(dbのパスワードとか)をVault by HashiCorpを使ってvaultの管理下に置いてみようと思う イメージ的には、今までプレイブックにこんな感じで平文で書かれていたものを、 password="1234abcd" こんな感じでプレイブック内に書かないようにしたい password="{{vaultからいい感じに取ってくる何か}}" 確かにこれでプレイブックには含まれなくなるけど、外部のデータストアに機密情報置くことになるけどそこは安全なのか問題がここで発生する でもvaultはそんな悩みを解決するためのツールだからいい感じに かつ安全に機密情報を管理してアプリケーションからいい感じに機密を使えるであろうことを激しく期待!禿北!! 準備 Ansible Lookup Plugin Lookup Pluginを使ってみる Lookup Pluginとは外部ソース(ローカルのファイルや外部のデータストア等)からansible内のデータへのアクセスを可能にしてくれるプラグイン機能 vau
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 PUT -d '{ "secret_shares": 6, "secret_threshold": 5
1 min read
Setting the canonical link to ghost
ghost

Setting the canonical link to ghost

CloudFlare one-click SSLを使ってサイトをSSL化しているんだけど、 ページのソースを表示した時にcanonical linkがhttpのままであることを職場のパイセンに指摘されて( ゚д゚)ハッ!っとなったので直した!(割と前の話ですが…!) ghost/config.js内でproductionのurlをhttpsにしてghostを再起動すればOK こんな感じ config = { // ### Production // When running Ghost in the wild, use the production environment // Configure your URL and mail settings here production: { //url: 'http://ghost.ponpokopon.me', url: 'https://ghost.ponpokopon.me', ]... 簡単!
change database of ghost blog
ghost

change database of ghost blog

最初に書いておくと、一番楽チンでダウンタイムも少ないであろう、 sqliteからデータをダンプして、mysqlのダンプに変換する方法は諦めたorz SQLiteからMySQLへデータのマイグレーション(変換)|DB|ブログ|ノノログで紹介されていたPythonのスクリプトを使ってみたんだけど、だめだった ※ ちなみにghostのdbはデフォルトでsqlite3を使っていて、ghost/content/data/ghost.dbにある ghostには記事や設定のエクスポート機能があるので、この機能を使う 流れは以下 1. 記事をエクスポートする 2. ghostの設定をmysqlを使うように書き換えてghost再起動 3. まっさらなghostにエクスポートしたファイルをインポート 当然ghost再起動した段階で初期状態になってしまうのでダウンタイムになるけどまあ個人ブログだし妥協 設定の書き換え ghost/config.jsを以下のように修正(元の設定をコメントアウトしてmysqlの設定を追加している) production: { ..
1 min read