ログってなんぼ

日々のメモです

Ansibleで「AnsibleError: template error while templating string: Encountered unknown tag 」エラー

Ansibleでphp-fpmのwww.confを更新しようと思ってレシピとテンプレートを書いて実行したら

fatal: [HOSTNAME]: FAILED! => {"changed": false, "failed": true, "msg": "AnsibleError: template error while templating string: Encountered unknown tag 'Y'.. String: ; Start a new pool named 'www'.\n; the variable $pool can we used in any directive and will be replaced by the\n; pool name ('www' here)\n[www]\n\n; Per pool prefix\n; It only applies on the following directives:\n; - 'access.log'\n; - 'slowlog'\n; - 'listen' (unixsocket)\n; - 'chroot'\n; - 'chdir'\n; - 'php_values'\n;
・
・

あれっおかしいな・・・インストール直後のwww.confをべた張りしただけなのにエラーとは・・

設定ファイルの中のどこかの文字列が誤認識されてエラーになってる模様

困ったときは公式ドキュメント

Advanced Syntax — Ansible Documentation

{% raw %}
内容
{% endraw %}

エラーになっている箇所を上記タグで囲めば解決しました

Zabbix:時刻ずれを検知してトリガーを作る

Zabbix Serverとどのくらい時刻がずれているかをトリガーにしてみます

1 サポートされているトリガー関数 [Zabbix Documentation 2.2]

fuzzytime

タイムスタンプ(アイテムの値)とZabbixサーバ時刻の差が N 秒以内なら1、それ以外なら0を返します。
通常は system.localtime と組み合わせて、ローカル時刻とZabbixサーバのローカル時刻が同期しているかどうかをチェックします。

ということでfizzytimeを使うことにします

作ったトリガー

こんな感じです

 {Template OS Linux:system.localtime.fuzzytime(30)}=0

f:id:Okisanjp:20170704153900p:plain

結構ずれてるサーバー多かった・・

G's Academy(ジーズアカデミー)でLTしました

gsacademy.tokyo

表参道にあるエンジニア養成学校「ジーズアカデミー」さんでLTしてきました。

gsacademy.tokyo

学生が色々と相談できるメンター制度というのがあって、メンターの中から何人かの方もLTされてました。

f:id:Okisanjp:20170704150142j:plain

ぼくはZabbixとGrafanaについて簡単に小話してきました。

vagrant :: The UID used to create the VM was:なんちゃらとエラーが出たとき

vagrant upした時に以下のようなエラー

The VirtualBox VM was created with a user that doesn't match the
current user running Vagrant. VirtualBox requires that the same user
be used to manage the VM that was created. Please re-run Vagrant with
that user. This is not a Vagrant issue.

The UID used to create the VM was: 0
Your UID is: 501

が出てしまった場合

.vagrant/machines/default/virtualbox/creator_uid

このファイルに0と書かれているはずなので今回のケースでは501に変更

コレで起動するはずです

PHP:laravel/envoy の @serversに多くのサーバーを定義するメモ

laravel.com

laravel/envoy 使用時

@serversに対象サーバーを定義しますが

@servers(['web001' => 'hogeuser@web001', 'web002' => 'hogeuser@web002', 'batch001' => 'hogeuser@batch001', 'batch002' => 'hogeuser@batch002', 'api001' => 'hogeuser@api001', 'api002' => 'hogeuser@api002'])

サーバーが増えると長くなってしまいます。

改行することもできないので

@php
$servers = [
  'web001' => 'hogeuser@web001',
  'web002' => 'hogeuser@web002',
  'batch001' => 'hogeuser@batch001',
  'batch002' => 'hogeuser@batch002',
  'api001' => 'hogeuser@api001',
  'api002' => 'hogeuser@api002'
];
@endphp

@servers($servers)

こうするしか無いようです・・・

mysqldump:テーブル毎のデータ件数に上限をかけてdumpする

MySQL :: MySQL 5.7 Reference Manual :: 4.5.4 mysqldump — A Database Backup Program

各テーブルのデータ上限10,000件で全テーブルのDUMPが欲しい場合

mysqldump -h HOSTNAME -u MYSQ_USER DB_NAME --where='true limit 10000' > dump_limit10000.sql

こんな感じ。