ようへいの日々精進XP

よかろうもん

2019 年 10 月 13 日 (日)

ジョギング

  • キタクマヤッホートレイル参加!

yamap.com

血反吐を吐くほどのキツさ. 上りがとにかく苦手ということを実感した.

余談だが, 大会の MC をされていた熊本 RKK の栗原めぐみさん, ただの (と言ったら失礼だけど) お天気お姉さんではなかった...

japantrailcraft.com

ストイック...

帰宅

クタクタで帰宅して久しぶりに奥さんに会った気がして嬉しかった. 帰るなり「いっせーのせゲーム」をやって楽しかった.

夕飯

  • 手羽中のソテーを美味しく頂いた
  • せっかく熊本に行ったんだから馬刺しを...と思ったけど, また別の機会に

2019 年 10 月 12 日 (土)

ジョギング

  • 山王公園を 35 分
  • 懸垂 x 7
  • キタクマヤッホートレイルの調整

ヤッホートレイルへの移動

  • お昼過ぎに買い出しを済ませてから, 14 時半過ぎに浩平さんにピックアップして頂いてヤッホートレイルが開催される山鹿市に移動
  • 大会が開催されるキャンプ場のケビンに宿泊する
  • ケビンに着いてすぐに夕飯を準備, 夕飯を準備するにあたり致命的なミス...箸を買い忘れており隣のケビンに泊まっていたグループに恵んで頂いた
  • 夕飯のメニューは, レトルトのソースを 2 種類合掛けにしたパスタと, ステーキ肉 (輸入肉) も買い込んでいたのでガッツリと肉も食らった
  • 夕飯の後はキャンプファイヤーを囲んでワイワイ雑談に花が咲いて, すっかり走ることを忘れてしまっていた

itamae で作ったユーザーを削除する

tl;dr

itamae で作ったユーザーを削除する機会があった. 当然, itamae で作ったユーザーだから, itamae レシピ上で削除しておけばプロビジョニングの過程でサーバー上から削除されるものとばっかり思っていたけど...

削除はサポートしていなかった

github.com

...
      def pre_action
        case @current_action
        when :create
          attributes.exist = true
        end
...

上記のように, itamae の user リソースのアクション定義に create 以外は実装されていなかった.

他のリソースを見てみると... 例えば, file リソースだと,

...
      def pre_action
        current.exist = run_specinfra(:check_file_is_file, attributes.path)

        case @current_action
        when :create
          attributes.exist = true
        when :delete
          attributes.exist = false
        when :edit
          attributes.exist = true
...

delete アクションが実装されている.

きっと, なにか経緯があったりするのかなーと思ったりしつつ, ユーザーは手動で削除しようってことになった.

ということで

ユーザー自体は userdel で手動で削除したあとで itamae のレシピから削除したユーザーのエントリを削除する対応をとった.

Chef とか Ansible ってどうだっけ

Chef だと

docs.chef.io

user リソースには :remove アクションが用意されていた. ふむふむ.

Ansible だと

docs.ansible.com

Chef 同様に remove パラメータが用意されたいた. ふむふむ.

ということで

必要であれば, 自分で実装してプルリクエストを送れば良いということで自己解決 (プルリクエストを送るとは言っていない). でも, なぜ, remove または delete が実装されていないのか聞いてみたい気もした.

2019 年 10 月 11 日 (金)

ジョギング

  • 山王公園を 40 分
  • 右足親指に小さなマメが出来て気になっているし, 痛い

ギョーム

  • ウィークリーレポートを書く, 書きながら過去一年のメトリクスを眺めていたら大きな気付きがあって進化している (開発メンバーの努力の賜物) 感があって良かった
  • CMS 基盤の移行を頑張った
  • ElastiCache のメンテナンス通知が届いていたので検証, Multi-AZ で構成している場合, フェイルオーバーで 1 分ほど疎通断が発生したので検証して良かった (断無しというのは無理なのかな...)
  • ああー, Multi-AZ と言っても, まったく断無しではないということを改めて認識した

STRIDE LAB

さきむらさんに連れて行ってもらった. 大濠公園よりもまだ天神より, 俺たちの家康のとなりのビルに入っているランニング専門ショップ.

stridelab.jp

シューズは ALTRA ばかりを取り扱っていたけど, かなりカッコいいシューズが展示されていて, 新しい世界が開けた気がした.

www.altrarunning.com

これなんかだいぶんカッコいい.

今回はシューズは買わなかったけど, 明後日のトレラン用の行動食等を数点購入した.

コーマくん

ヤマップでもっとも若い (はず) メンバーのコーマくんの激励会. 社内でワイワイ楽しい時間を過ごせたし, コーマくんにチャゲアスの良さを説くことが出来て良かった. 自分はとにかく頑張れしか言えない加齢臭のするおじさんになっていた. 頑張れ, コーマくん.

夕飯

自宅に帰って夕食. 「妻の角煮」Day2. 味が染みていて美味しかった.

seq コマンド (だけ) で 0 パディング

tl;dr

即興で 1 から 100 までの数字を用意する必要になった. しかも, すべての数字を 0 パディングしたい.

今までの俺

ググったりして seq コマンドが良さそうなことはわかっていたけど, 以下のように書いて満足していた.

for id in `seq 1 100`
do
  num=`printf %03d $id`
  echo $num
done

明日からの俺

qiita.com

上記の記事のコメント欄を見て目が醒めた.

for num in `seq -w 1 100`
do
  echo $num
done

seq --help すると, ちゃんと書かれている.

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.2 LTS"

$ seq --help

()

Mandatory arguments to long options are mandatory for short options too.
  -f, --format=FORMAT      use printf style floating-point FORMAT
  -s, --separator=STRING   use STRING to separate numbers (default: \n)
  -w, --equal-width        equalize width by padding with leading zeroes
      --help     この使い方を表示して終了する
      --version  バージョン情報を表示して終了する

()

これで OK. むしろ, for しなくても seq コマンドのオプションでかたがつく.

$ seq -w 1 100
001
002
003
...
098
099
100

最後に

man やヘルプを読みましょう.

2019 年 10 月 10 日 (木)

ジョギング

  • 積極的お休み

ギョーム

  • CMS 環境の構築, AWS 上に CMS 環境を構築するのは地味にめんどくさいことを把握
  • 弊社全体のシステム構成をちゃんと把握していない問題を起こしてしまい諸々調整対応 (ビビった)
  • AWS サポートとのやりとり, 改めて AWS サポートのやりとりについて学びがあった (以下に回答を引き出すか, それは, 質問する方の質問の仕方も重要である)

JAWS-UG 福岡もくもく会

  • 久しぶりに YAMAP にて開催
  • Spot Fleet の検証
  • 少しだけお酒も入ってワイワイ楽しい時間だった

夕飯

  • 「妻の角煮」
  • 角煮はよく煮えていたが少し塩辛かった...しかし, 奥さんが初めて作ったという煮玉子がとてもよく出来ていて感動した
  • 美味しかった, ありがとう

2019 年 10 月 09 日 (水)

ジョギング

  • 山王公園を 45 分
  • 懸垂 x 7 回
  • 右足の親指に血豆みたいなのが出来ていて踏ん張ると痛い...

ギョーム

  • Fargate に移行したサービスの撤去, あー, コンテナ時代のサービス撤去だなーという気分になった
  • データベースのリードレプリカを r4 系から r5 系に移行, サービスへの影響は無いのでカジュアルに
  • r4 と r5 の違い, ポジティブな違いは CPU パフォーマンスが最大 20% 向上, 個人的におーって思ったのが Nitro 基盤であること...
  • 午後からは AWS を触りはじめてから初めてになると思うけど, がっつりと Spot Instance を触って Spot Fleet や EC2 Auto Scaling の違いについて雰囲気を掴んだ
  • Spot Fleet は「これっくらい」のリソースをーって設定したら, インスタンスタイプを問わずリソースを Spot やオンデマンドで確保してくれるサービス
  • EC2 Auto Scaling は Auto Scaling Group のオプションの一つとしてスポットインスタンスを利用出来るようになっている

学びの多い一日だった.

夕飯

  • 豚こまと玉ねぎの炒め, 定番メニューでいつも美味しい
  • 同僚の馬場さんから頂いた北海道の新じゃがをじゃがバタにして食べたらサイコーだった

2019 年 10 月 08 日 (火)

ジョギング

  • 山王公園を 40 分
  • 懸垂 x 7 回
  • 昨日よりは足のバキバキ感は減った...が, 右の太ももに強い張りが残っている

ギョーム

  • EC2 で運用しているサーバーに swap を追加, swap を追加したら負けと言われているが, 本当に負けた
  • swap 追加したサーバーに Apache を監視して, 異常を検知したら httpd を自動で再起動するツールを書いて導入した
  • 昨日構築した Fargate にアプリケーションをデプロイ!と思ったら, デプロイツールの awscli バージョンが古かったりしてエラーになって焦った (出来るだけ最新の安定版を使うべきだと反省)
  • ECS で Spot Instance を使う際の Draining が自動化されたようで嬉しい, Spot Instance 化が捗る

夕飯

  • 奥さんが焼いてくれる鮭のバター焼きはいつも美味しい

2019 年 10 月 07 日 (月)

ジョギング

  • 山王公園を 35 分
  • 懸垂 x 7 回
  • 足腰がバキバキで辛かった...

ギョーム

  • Terraform で Fargate + ALB 構成をザッと書いてリリース... しかし, Terraform はガッツリ時間をかけて触っていないので中途半端な知識で辛い
  • Terraform は引き続き修行が必要だけど, Fargate, ちょっとコンテナの起動が遅かったりするけど, シュッと Service を書けばコンテナサービスを立ち上げられるし, ワンショットなタスクも動かせるので好き
  • 1 on 1, ヤマップに入って 1 on 1 がとても良いなあ, 振り返りは重要, また, 二週間くらいのスパンで振り返るのがちょうど良い感じ
  • Fargate + ALB が差込タスクだったので, 今日やりたかったことは明日頑張ろう...

散歩

  • ギョームを 18 時半で切り上げて帰宅, 帰宅してから奥さんと山王公園を散歩
  • だいぶん涼しくなって散歩が楽しい季節になってきた感

夕飯

  • 奥さん特製のささみを大葉で巻いた天ぷらがとても美味しくて最高だった

2019 年 10 月 06 日 (日)

ジョギング

  • 社内ランニング部の練習会で大濠公園スタートの西公園を 5 周して帰ってきた
  • 約 1 時間程
  • 大濠公園を道下選手がトレーニングしていた, 間近で見る道下選手はとても小柄だったけど, 力強い走りで見ている方が毎回励まされる...頑張ろう
  • いつもロッカーとシャワーを借りているランステが消費税 10 % 値上げに伴う値上げでビビった (便乗っぽい値上げの仕方で笑うしかなかった)

寝まくった

大濠公園から帰ってきて, 色々と作業をしたかったのに, うっかりベッドに横になったらそのまま寝てしまっていた. その後, ずーっと寝てしまって, 気づいたら 13 時を過ぎてしまっていた. 奥さんと殺伐としたルミエールに買い物に出かけて, 帰ってきてからも一眠り... 相当寝てしまった.