sql_mode does not work

MySQLのsql_modeを設定する必要に迫られたので設定しようとしたらハマった…。MySQLのバージョンは5.6系です。OSはCensOS6系です。 MySQL :: MySQL 5.6 リファレンスマニュアル :: 5.1.7 サーバー SQL モード 手動で設定する方法 まずは手動で設定する方法。 現在設定されているsql_modeを確認する方法は以下。 SELECT @@GLOBAL.sql_mode; sql_modeを手動で設定する方法は以下。 »

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回目のビルドを手動で行う 自動ビルド設定の手順 »

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= »

Summary of Terraform v0.10

terraformのv0.10が出ましたね。 ✨ HashiCorp Terraform 0.10 | HashiCorp v0.10の概要とv0.9からの移行方法をメモしておきます。 v0.10の概要 以下の大きめの変更があるようです。 プロバイダの分離 多数のプロバイダの改善 State Environmentsの名前の変更 プロバイダの分離がだいぶ大きな変更ですね。今まではterraformのバイナリにプロバイダのリソースが含まれていましたが、これからはtarraformのコアのバイナリとプロバイダのバイナリが分離されます。 プロバイダのリソースはそれぞれのプロバイダ毎の単一のバイナリファイルとなり、terraformにインクルードされて使われる様になります。 また、terraformのリポジトリもコアのリポジトリとプロバイダのリポジトリで分離されるようになります。 Terraform Providers »

Terraform state file removed by S3 Lifecycle

こんにちわ。最近キャンプばっかり行っているのでブログ更新が滞っています。あかん! さて、このブログが動いているサーバはterraformでインフラの管理をしています。 terraformのstateファイルの管理はS3バックエンドを使っています。 Migration from terraform remote command to terraform backend system また、S3の設定でバージョニングとライフサイクルの設定をしていました。 Versioning terraform.tfstate この設定が原因でtfstateファイルが消えてしまったので記録しておきます…。 起きたこと terraform planを実行したら全てのリソースがcreateされる差分が出てしまいました。 急いでS3のバケットを見たところ、なんと空になっていました… »

Mix stacked graph and line graph with Mackerel

Mackerelで積み上げと線グラフを混在させることがUIからできるようになりました! エージェントインストール手順ページを刷新しました ほか - Mackerel ブログ #mackerelio カスタムメトリックとサービスメトリックが対象のようです。システムメトリック(mackerel-agentインストール時にデフォルトで取られるグラフ)ではUIから設定できませんでした。 やってみる こんな感じ。簡単! システムメトリックでも積み上げグラフ・線グラフを混在させる方法 さて、公式ブログでは「UI上で設定できるようになりました。」と、ちょっと含みのある表現がされていましたが、これは式によるカスタムグラフでは以前から可能だったからと思われます。 カスタマイズしたグラフを表示する - Mackerel ヘルプ »

Delete Go Map entry and rename Go Map key

Mapの操作を色々する機会があったのでまとめてみます。 The Go Programming Language Specification - Map_types それぞれのセクションごとに動作するコードのリンクがあります。play.golang.org上にあるので、その場で実行することができます。 ゴール pathみたいに/区切りの文字列をキーとして持っているMapに対し、特定の条件を持つキーを削除したり、キー名を変更する。 普通はそんなこと意識しないようにMap作っていくと思うんだけど人生は長い。Mapのキーをごにょごにょしたいときもある。 Mapの作成 いくつか作成方法はありますが今回は以下のように作成。このMapをごにょごにょしていきます。 func defineMap( »

Convert markdown to Google Slide

少し前の話ですが、Decksetが無い環境で既存のDecksetで作成したスライドの手直しをする必要に迫られました。 Decksetが無いのでGoogle Slideに移行して作業しようとしたのですが、スライドのページが数十枚ほどあり、手でGoogle Slideに移すのはツライところでした。 そこで調べたところmd2googleslidesというツールがあったので使ってみました。 JavaScript製のツールみたいです。インストール方法は以下。 npm install -g md2gslides 使い方は簡単で以下のようにmd2gslidesコマンドにマークダウンファイルを渡してあげるだけです。 md2gslides hogehoge.md G Suiteのマイページのトップにスライドは作成されていました(確か)。 初回はプロンプトが開いてGoogleアカウントの認証があります。DecksetのようにHTMLタグは対応していないので、HTMLタグが入っているとエラーが出ます。また、![](./pic. »

DigitalOcean released Cloud Firewalls

DigitalOceanにマネージドなファイアウォールが追加されました! ✨ Cloud Firewalls: Secure Droplets by Default 管理画面やAPIから設定できるファイアウォールで、設定はDigitalOceanのネットワーク層で適用されます(フィルタされたパケットはドロップレットまで届かない)。 この機能によってドロップレット毎にiptablesやfirewalldを設定する必要がなくなるのがうれしいですね。 sourceもしくはdestinationにはIPv4, IPv6, タグ, ドロップレット, ロードバランサを指定することができます。tagを指定することで楽かつ柔軟にスケールできそうですね。 terraformでも近いうち実装されそう。 resource_digitalocean_firewall.go: Add DO Cloud Firewalls »

Post GCP Billing data to Mackerel with Node.js

Node.jsのBigQueryライブラリを使ってGCPのBillingを取得してみました。 Get GCP Billing with Node.js 次はこのBillingの情報をMackerelにサービスメトリックとして送ってみます。 Mackerel側のインターフェースの確認 サービスメトリックは以下のデータ形式で送れば良いみたいです。 [ <metricValue>, <metricValue>, … ] 詳細はこちら。 サービスメトリック - Mackerel API ドキュメント (v0) つまり、今回の場合は以下のようなデータを送れば良いみたいです。 »