Python でコメント付きYAMLを扱う時には ruamel.yaml が便利だった

資料

背景

とある yamlで書かれたconfigファイル群(数百ファイル)を一括で変更したいことがあった。
sedで変更するには少し難しかったので、パースしてから条件判定して、書き換えたい。

  • コメントは消したくない
  • ブロックスタイルのままにしたい
  • diff を最小限にしたい (細かい中身を知らないので、チェックするのが面倒)

ruamel.yaml

python で …

more ...

CloudFormation の不満点

以下では「手作業で」というのは、「CloudFormation管理外で」という意味で使う。

要点

  • CloudFormation は、リソースが何かの理由で手作業で変更されていた場合に安全に操作できない
  • Drift 検出は誤検出が多すぎて使いづらい
  • Change Set は動いている状態との差分を見ていないので、信用できない

経緯

CloudFormation で管理されているリソースすべてについて、新しいタグをつけたくなった。
ただ、各サービスの担当者ごとにある程度自由にオペレーションできるため、手動で変更されていないか、一応調べておこうと思い、
2018-11 にリリースされたドリフト検出 …

more ...

さくらインターネットを退職しました

Date

本日最終出社日です。

さくらインターネットでやったこと

さくらインターネットではIoT向けのサービスの開発、チームのリーダーをやっていました。
動き方としては、エンジニアリング100%というよりは、企画やチームマネジメントの割合が多かったように思います。
チームに参加したときにはリーダーではなかったのですが、サービスに必要そうなことをやっていたら、いつの間にかリーダーをやる感じになっていた感じです。

簡単なところでいうと、例えばwebページの閲覧数がモニタリングされていなかったり、サービス上のビジネスとして重要な指標が計測できていなかったりしたので、ダッシュボードを作ったり、実際に見て、ボトルネックに対する仮説を立てて、改善するための開発計画を立てるなどしていました。

あと印象的なこととして、さくらのオブジェクトストレージが1ヶ月以上障害になったことがありました。
オブジェクトストレージのチームとはかなり離れた立ち位置でしたが、復旧の見込みが見えない状況が続いていたので、
ドキュメントを深夜に読み漁り、翌日復旧しにチームの席に乗り込んだことはよく覚えています。
色々ログイン権限をもらって調査すると …

more ...

DebianでLuaJITTeXを使いたい

そろそろLuaTex使ってみたいなと思ったところ、LuaJITTeXの方が早い場合があるということで、試してみようと思った。

参考

未解決の問題

  • /var/lib/texmf/fmtutil.cnf-TEXLIVEDIST が自動生成されている、とコメントされているが、元ファイルがわからない
### This file was …
more ...

Debian でログインシェルをzshにしている人が snappy を使う場合の注意

Snappy について

Canonical が主導しているパッケージシステムで、Universal Linux Package と銘打つように、ポータブルなパッケージングができそうな感じ。
ポータビリティを上げるために、dockerみたいな感じで、依存ライブラリも全部パッケージに含めてしまうスタイルなので、多少debパッケージよりは大きくなる。
その分、sidを使っているとよく起きる、共通ライブラリの依存バージョンの不整合がおきる、という問題は起きない。

snapcraftのページではパッケージングの方法も紹介されているので、配布したい人自身がsnapパッケージを作りやすいはず。
少なくとも、ディストーションごとのパッケージを各アプリケーション作成者がやるよりは、遥かにやりやすい。
自動アップデートとかもあるので …

more ...


Google Cloud Pub/Sub をGolangから使おうとしてハマったことまとめ

Date Tags GCP / golang

概要

Google Pub/SubGoのSDK から使おうとしていました。
やっているといくつか詰まったので、メモしておきます。

  1. サービスアカウントを利用するためにCredentials JSONを指定する
  2. サブスクリプションの Pub/Sub サブスクライバー権限 を与えても Permission Denied になる

サービスアカウントを利用するためにCredentials JSONを指定する

権限の都合上、サービスアカウントのCredentials JSONを利用して認証したい、という要件がありました …

more ...

さくらのクラウドでN百台を管理するためにterraformとansibleを使っている話


これは、さくらインターネット Advent Calendar 2017 として書いた記事 です。


さくらインターネットでは、今年4月からIoTプラットフォームの sakura.io をサービス提供しています。
sakura.io は、さくらのクラウド上で本番・検証環境を構築しており、数百台のサーバーを利用しています。

私はリリース直前にチームに参加し、開発の傍ら運用改善活動をしていました。
その結果としてTerraform を導入し、Terraform (+ Terraform …

more ...


Ansible でバージョンチェックする

やりたいこと

サーバー管理には ansible を使っていますが、apt で入れているパッケージに対して、以下をやりたい状況がありました。
- インストールされていなかったらインストール
- あるバージョン未満だったらアップデート

pipやgemといった言語のパッケージマネージャと違って、apt ではバージョンの制約を書くことが面倒です。
いい感じに playbook の中でバージョン比較をして、インストール/アップデートすべきかを判定したいと考えました。

結論

  • バージョン比較には、 version_compare filter を使う
  • バージョン比較方法としては …
more ...