イフブロ

イフブロ

インフラエンジニアのブログ

技術

nginxのserver_nameはちゃんと設定したほうがいいね。というお話

今日の内容 nginxのserver_nameはちゃんと設定したほうがいいね。というお話。 めんどくさくて省いたり、default_server をつけちゃったりしてたけど、ちゃんと書くことに意義がある事を知った日でした。 背景 関与しているサービスで、エラーマネジメントサ…

Terraformに足りないArgumentをスクリプトで設定する

概要 Terraformで Codebuildプロジェクトを作ろうとしましたが、GUIやAWS CLIでは設定できるけどTerraformでは設定できない項目があったので Terraformとうまく組み合わせながら実装してみました。 AWS: aws_codebuild_project - Terraform by HashiCorp 内…

Git-LFS + Provisioning Tool (Ansible/Itamae etc...)

概要 Git-LFSを使って、Provisioningで使う *.tar.gz ファイルの管理を楽にする。という対応をしたので 今回はそれのご紹介。 私がItamaeのコードを書いて、実行していて、ファイルのDownloadでよく落ちるレシピがありました。 最近は完全に動かなくなってし…

投銭システムのOsushiを登録しました

お寿司を送る osushi-to-umisora 興味半分です。

minamijoyo/tfschema を IntelliJから呼び出す

概要 こちらで紹介されている tfschema というツールを使ってみました。 Terraform書く時に、ここってList?String?なんだっけ?とかわからなくなること多いんですよね。 コレ見ればその仕様をしっかり確認できますね。 engineer.crowdworks.jp github.com …

Capistranoのcustom taskを書く時に気をつける事

概要 Capistranoのデフォルトで提供されているtask郡をやめて、自分たちで拡張しようと思った時に気をつけたほうが良いこと。 capistrano/framework.rake at master · capistrano/capistrano · GitHub ここで定義されているタスクのbefore/afterのhookで自分…

IntelliJ で `terraform.workspace` を補完させる

概要 Intellijでterraform書くとはかどりますよね〜 www.jetbrains.com plugins.jetbrains.com このプラグイン強力です。 バコバコ補完されるし。 さて、それを使っていて困ったのが terraform.workspace の変数が補完されない…。 よく使うのに、補完されな…

AWS構成図を腐らせないで管理し続ける方法 with draw.io

概要 AWSの構成図とか、インフラの構成図とか、UMLの図とか、 例えば esa とか Pukiwiki とかConfluence とか Github とかに書いた時ってだいたい情報腐りませんか?? メンテナンスするオリジナルファイルが見つけられない パスを併記するとかそうゆう運用…

オンラインでLinuxDisk拡張 with EBS / LVM

概要 AWSのEC2インスタンスのDiskをオンラインで拡張する。 なんか毎回ファイルコマンド忘れるし、どこ変えればいいんじゃ・・・ってなるんですよね。 きっと今回もなると思うんですけれども、少しでも前にすすめる様に覚え書きします。 環境 今回はルーティ…

Docker for Mac Kubernetes が startingから進まない

概要 Docker for Mac Kubernetes インストールした! Kubernetesを有効化した!!! が Kubernetes Startingのまま変わらず、Kubernetes Running にならない。。。。 何故なのー こうなりたいの! 私の場合の原因 Check The Logs!! Logs and troubleshooting…

Githubリポジトリのリリース通知をSlackにフィードする便利な方法

概要 Slackに利用しているOSSのリリースノート等を通知したいが、 RleaseページのフィードだとCHANGELOG.mdがないので参照がしづらい。 通知を押すとCHANGELOGに飛ぶと最高じゃないかなぁと思っていた。 qiita.com こんな記事があったので Terraform Core Te…

Mem使用率の見方 with HugePage

概要 データベースサーバーでHugePageを有効化して活用している事例があった。 メモリの使用率をグラフで見ていると、全然使われてない様に思ったのだが それは誤解だった。 という事でMemの使用率を追いかける方法を学ぶのから逃げていたが改めて踏み込んで…

Variable / Environment / Secret の書き方

Variable / Environmentの書き方 Ansible □ 定義 - hosts: webservers vars: http_port: 80 □ 参照 {{ http_port }} Packer □ 定義 引数で定義 packer build -var 'my_secret=foo' xxx.json ファイルで定義 packer build -var-file=variables.json yaml内で…

Catch Up Ansible! How to Start Ansible

Ansibleに取り組むので自分の学習経路をメモしておく。 公式Document 流し読みしたけど、なんとなく全体感がわからない Ansible Documentation — Ansible Documentation 英語だけど動画がなんとなく全体像捉えるにはわかりやすい。 英語聞けなくても、スライ…

Jenkins + Capistrano + Itamae で JenkinsコンソールにAnsiColorでログを出力する

やりたかったこと JenkinsからCapistranoを実行し、CapistranoがリモートサーバーでItamaeを実行する時に DryRunやRunの結果をJenkinsのログにカラーで表示したい!というかカラーつかないと確認辛いじゃん。 で、JenkinsからCap + Itamaeを実行させてサーバ…

Capistranoのリリースログ翻訳 3.6.0 3.7.0 3.8.0 3.9.0

Capistranoのバージョンアップの際にリリースログを読んで日本語で保存しておく 新機能とDeprecateだけ。(BugFixとOtherChageは気になるやつだけ書きます) 3.6.0 https://github.com/capistrano/capistrano/blob/master/CHANGELOG.md#360-2016-07-26 Depreca…

今の時代のrsync

オプションはこれだ rsync -avuPSHW ネットワーク帯域の考慮をせずに転送をするので速くなる。 ファイル比較のロジックも簡易化されるので更に速くなる。

git diffでvimdiffで使う

git diff 実行時に vimdiff方式で確認をしたい。 場合によっては一部戻したい。そんな時の設定です。 gitのdiff表示をvimdiffで見る を参考にしつつ さらに git alias を使って直感的にしました。 git vimdiff とやると vimdiffでgit の diffが表示されます…

Jenkins1系から2系へのバージョンアップ

仕事場ではJenkinsを数年来活用しています。 Pluginを駆使して、色んなワークフローを組みながらあーでもない、こーでもないとトラブルしながら追いかけてきました。 昨年、Jenkins2.0が発表されてその機能の一部であるworkflow pluginを1系でも活用してきま…

Capistrano Server Properties / Role Properties

いつもメモ書きなので、言葉も文章も終わってる気がしますが備忘なのでまとめる事を優先…(という言い訳) Capistranoはserver毎固有のpropertiesと、ROLE毎のPropertiesを持てます。 本家だとこのへんの記述。 今回はサーバーの種類によって処理を分けたかっ…

Capistrano: execute / captureの使い方(ハマったよ)

Capistraのexecuteとcaptureについて 仕様が明確になったので綴ります。 結論 executeやcaptureを使う時はコマンド部分と、その他を分けましょう。 まぁわかりづらいので、(<シンボル> , "args")で書くのがお作法的に良さそう。 例) ◯ execute(:echo, "test"…

Serverspec + JUnit Formatter -> Jenkins JUnit Report

各サーバーでserverspecを実行し、レポートを可視化する方法 幾つか方法あるとは思いますが今回は私は以下のようにしました。 前提 - Capistranoで各サーバー上でserverspecを実行している。 (serverspecのリモート機能は使っていない) レポートの出力方法 R…

CapistranoでServerspec :raise_on_non_zero_exit

Capistranoでリモートホストに同時実行する。 Serverspecを各ホストでlocal実行する。 複数台でエラーが出る。 そんな時に、エラーログが1つのサーバー分しか出ない時。 または、エラーを無視して、他のサーバーの処理もやりきって欲しい時のオプション。 :r…

Capistrano: scp / ssh Timeout Optionについて

Capistranoの自作taskで upload ではなく、scp等を使っている時に 以下のハマりがあった。 ファイル転送先 / 転送元が負荷の高い時にscpがTimeoutしてしまった。 NWかと思ったけど問題なく疎通している。 落ちるサーバーは毎回違うけど、同じ系統。 その場合…

Capistranoをrootでもuserでも使う

こんな要望あるのかな。という感じですが。 使い方もイマイチな感じですが。 やってみたのでご紹介します。 概要 Capistranoを使ってroot権限を使いたい時。 sudo は使いづらいし、なんだかなぁという事で結局rootでcapistranoを実行させる時。 root権限のユ…

CapistranoTaskに引数を指定可能にする

Capistranoのタスクは、引数取らないほうがいいかなとは思ってるんですが、 start | stop | restart | status 位は取れたほうがむしろコードが綺麗だよね。って事でやってみました。 > vi lib/capistrano/tasks/deamon.rake namespace :deamon do desc "serv…

Jenkinsのジョブの実行状態をJsonで取得する方法

こちらが参考になります。 knjname.hateblo.jp https://ci.jenkins-ci.org/computer/api/json?pretty=true&tree=computer[displayName,executors[progress,idle,currentExecutable[estimatedDuration,fullDisplayName,url]]] そのまま使えますね。 ちなみに…

CapistranoのHost/Role Filterのやり方

こんにちは。 今日も作業の中でハマった事を書きたいと思います。 誰かのお役に立てればいいなと。 CapistranoのFilter機能ですが、どうやら最新を取るとDocumentの通りにはいかなくなっている様なので、その内容を本日は書きます。 前回の記事「Capistrano…

AWS RDSのAuroraをパブリックから繋いだ時のパフォーマンス

CircleCIを使い始めました。 CircleCIでのCreateTableがローカルより遥かに遅いねという問題があり、 対策案として、AWSのRDSと繋いだら実は早いんじゃないか?というのを検討してみました。 結論から書くと、 RDSは同一リージョンのインスタンスと繋ぐと速…

Capistranoでon rolesだけなく on host 又は on serverみたいに1台指定固定をやりたい時の方法

こんにちは。 今日も作業の中でハマった事を書きたいと思います。 誰かのお役に立ってると嬉しいです。 Capistranoでtaskを作る時に、taskを実行するサーバーをロールで指定出来ると思います。 これをとある1サーバーだけでやりたい場合にどうするの?という…