メールサーバ移行手順と注意点

新しいメールサーバの準備から、データをコピーしてDNSレコードを変更するまでのメールサーバ移行に必要な手順のまとめです。

Pandoc の Syntax highlighting のカラースキームを Solarized にする

Pandoc が自動的に出力するcssはこんな感じ

pandoc.css
div.sourceCode { overflow-x: auto; }
table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode {
  margin: 0; padding: 0; vertical-align: baseline; border: none; }
table.sourceCode { width: 100%; line-height: 100%; }
td.lineNumbers { text-align: right; padding-right: 4px; padding-left: 4px; background-color: #dddddd; }
td.sourceCode { padding-left: 5px; }
code > span.kw { font-weight: bold; } /* Keyword */
code > span.dt { color: #800000; } /* DataType */
code > span.dv { color: #0000ff; } /* DecVal */
code > span.bn { color: #0000ff; } /* BaseN */
code > span.fl { color: #800080; } /* Float */
code > span.ch { color: #ff00ff; } /* Char */
code > span.st { color: #dd0000; } /* String */
code > span.co { color: #808080; font-style: italic; } /* Comment */
code > span.al { color: #00ff00; font-weight: bold; } /* Alert */
code > span.fu { color: #000080; } /* Function */
code > span.er { color: #ff0000; font-weight: bold; } /* Error */
code > span.wa { color: #ff0000; font-weight: bold; } /* Warning */
code > span.cn { color: #000000; } /* Constant */
code > span.sc { color: #ff00ff; } /* SpecialChar */
code > span.vs { color: #dd0000; } /* VerbatimString */
code > span.ss { color: #dd0000; } /* SpecialString */
code > span.im { } /* Import */
code > span.va { } /* Variable */
code > span.cf { } /* ControlFlow */
code > span.op { } /* Operator */
code > span.bu { } /* BuiltIn */
code > span.ex { } /* Extension */
code > span.pp { font-weight: bold; } /* Preprocessor */
code > span.at { } /* Attribute */
code > span.do { color: #808080; font-style: italic; } /* Documentation */
code > span.an { color: #808080; font-weight: bold; font-style: italic; } /* Annotation */
code > span.cv { color: #808080; font-weight: bold; font-style: italic; } /* CommentVar */
code > span.in { color: #808080; font-weight: bold; font-style: italic; } /* Information */

これを Solarized にします。

Grafana の Alerting を Gmail で通知する

Grafana にはアラートの機能があります。
Prometheus にも Alertmanager がありますが、アラートも Grafana で設定した方が簡単便利です。

Docker Swarmモード利用時に one-off でタスクを実行して不要なイメージを削除する

Swarmモードではサービスを作成してタスクを実行します。 サービスは自動的に再起動されます。 サービス作成(デプロイ)時に一度だけタスクを実行したかったので色々試してうまくいった方法を残しておきます。

brew cask でインストールに失敗する

久しぶりにbrew caskでGUIアプリをインストールしようとしたら失敗した。
調べて解決するまでのメモ。