【本】「100%集中法」読んだ
- 作者: 藤野敬介
- 出版社/メーカー: フォレスト出版
- 発売日: 2019/01/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
SNSやスマホの通知がどれだけ集中力を阻害するかっていうお話が書いてあって、もうホントそれはすごいわかるという同意と、そりゃサクッとSNSやめてあらゆる通知をOFFにできれば苦労はしないんだな、というお気持ちになれる。
その辺りをうまくコントロールすることについても言及はしているが、その辺りをどうコントロールすれば良いかについて一度でも向き合って色々試したことがある人にとっては、特別、斬新な方法ではないと思う。
メインは、集中力を高めるための簡単なエクササイズの紹介で、それを毎日意識的にやることで集中力を高める、あるいはすぐに集中状態に持っていくコツを掴もうというお話。
で、最後にポモドーロ・テクニックの紹介なんだけど、ホント一般的なポモドーロ・テクニックなので、ググればすぐに出てくる。
強いて言えば、紹介したエクササイズと組み合わせるとより良いよ、という感じ。
スマホをいつも眺めててそれに無自覚な人ととか、瞑想とかポモドーロとか、なにそれ聞いたことないやったことないっていう方が読むと何かしら得られるかもしれない。
けどそうじゃない人は「そだねー」という気持ちになる、そんな本。
あ、最後のQ&Aは読んでて面白かった。
エクササイズ、試しにやってみようかなという気持ちと、とりあえず、スマホの中のSNSアプリ全部削除するしかないか(何度目や)、、、という気持ちにはなった。
不便さを感じて再インストールする未来まで見えてる。
【MySQL】実行された全てのクエリを出力する「一般クエリログ」について
更新系・参照系問わずすべてのログが記録される。
ユーザーの接続・切断情報も記録される。
有効にするとすぐにログが肥大化するため、基本的にデバッグなどのときのみ有効にすると良い。
MySQL 5.6.3以降ではデフォルトでパスワードは平文で保存されることはないが、それより前の場合は書き換えないため、ログを保護する必要がある。
本番環境では要注意。
以下、一般クエリログに関連する設定値。
SHOW VARIABLES LIKE '%log%';
などで確認する。
- general_log
- ONにすると一般クエリログが有効になる
- general_log_file
- ログの出力先を指定
一般クエリログを有効にする。
SET GLOBAL general_log = 'ON';
SET GLOBALなので、全ての接続について影響を受ける。
再起動不要。
SET sql_log_off = 'ON';
セッション変数の変更なので、現在の接続についてのみ影響を受ける。
他の接続については影響を受けない。
再起動不要。
ログの出力先を変更する。
SET GLOBAL general_log_file = '/var/lib/mysql/hogefuga.log'
【入門・初心者向け】AnsibleでMariaDB(MySQL)をインストールして起動するところまで
こちらの続きです。
簡単なプレイブックを作成して、実行するところまでやってみました。
今回はもう少し実践寄りで、MariaDBをインストールして起動するところまでの最低限を、Ansibleを使ってやってみます。
ロール(Role)を利用する
前回は dev.yml
にタスクを記述していましたが、例えば今後、データベース、Webサーバー、OSの構成管理など様々なタスクが増えたときに、1つのファイルにすべてのタスクを記述すると、見通しが悪く、管理が煩雑になってしまいます。
そこでAnsibleのロールという仕組みを利用して、設定する内容別にプレイブックを分割します。
まず以下のようにディレクトリ・ファイルを作成します。
$ mkdir -p roles/mariadb/tasks $ touch roles/mariadb/tasks/main.yml
このように roles
ディレクトリの下に、それぞれの設定内容別にディレクトリを分け、さらにその下に必要なプレイブックを作成していくような形になります。
今回は roles/
の下に tasks/
しか作りませんが、設定する内容が増えてくると、 defaults/
や templates/
、 files/
などのディレクトリが増えていきます。
tasks/
にはタスクを記述したyamlファイルを置くことになり、 main.yml
が固定で読み込まれるようになっているため、必ず配置するようにしましょう。
ロールを作成したら、そのロールを利用するために dev.yml
に次のように記述します。
- hosts: dev become: true roles: - mariadb
roles
というディレクティブを使用して、作成した mariadb
ロールを参照しています。
これで roles/mariadb/tasks/main.yml
に記述したタスクが実行されるようになります。
なお、 become: true
とすることで、特権ユーザー(sudo)でタスク実行を行うようになります。
Become (Privilege Escalation) — Ansible Documentation
では、実際にタスクを記述していきましょう。
リポジトリの追加
まずは、MariaDB公式のリポジトリを追加します(Amazon Linux 2を想定)。
roles/mariadb/tasks/main.yml
に以下のように記述します。
--- - name: Add repository yum_repository: name: MariaDB description: MariaDB repo baseurl: http://yum.mariadb.org/10.3/rhel7-amd64 gpgkey: https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck: true
このタスクはyum_repositoryモジュールを使用して、/etc/yum.repos.d/
配下にリポジトリ定義ファイル MariaDB.repo
を追加するといったものになります。
このようにAnsibleでは、目的の設定を行うために、用意された数多くのモジュールを使用してタスクを記述していくことになります。
大抵のものはモジュールとして提供されていますので、Ansibleの公式ドキュメントを参照し、モジュールを適切に活用して、タスクを記述していきます。
さて、記述が終わったら実行すれば良いわけですが、その前にできるだけチェックを行うべきです。
チェックするコマンドは主に以下のようなものがあります。
# シンタックスチェック。構文エラーがあればその内容を出力する。 $ ansible-playbook -i inventory/dev --connection=local dev.yml --syntax-check # タスク一覧チェック。実行予定のタスク一覧を表示する。 $ ansible-playbook -i inventory/dev --connection=local dev.yml --list-tasks # 実行時変更点チェック。実行したときの変更点を表示する。いわゆるDry Run。--check忘れに注意。 $ ansible-playbook -i inventory/dev --connection=local dev.yml --diff --check
特に三番目の --diff --check
を使った実行時変更点のチェックは行った方が良いでしょう。
ただ、注意して欲しいのは --check
をつけ忘れるとタスク実行になってしまうということです。
--diff
は変更内容の差分を表示するためだけのオプションのため、Dry Runにはなりません。
--diff --check
を実行すると、以下のように差分が表示されます。
(省略)... TASK [mariadb : Add repository] --- before: /etc/yum.repos.d/MariaDB.repo +++ after: /etc/yum.repos.d/MariaDB.repo @@ -0,0 +1,6 @@ +[MariaDB] +baseurl = http://yum.mariadb.org/10.3/rhel7-amd64 +gpgcheck = 1 +gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB +name = MariaDB repo + ...(省略)
変更点が事前に確認できたら実行します。
$ ansible-playbook -i inventory/dev --connection=local dev.yml --diff
うまくいけば /etc/yum.repos.d/MariaDB.repo
が作成されているはずです。
$ cat /etc/yum.repos.d/MariaDB.repo [MariaDB] baseurl = http://yum.mariadb.org/10.3/rhel7-amd64 gpgcheck = 1 gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB name = MariaDB repo
MariaDBのインストールから起動まで
まだリポジトリを追加しただけです。
MariaDBのインストールから起動までのタスクを記述してしまいます。
--- - name: Add repository yum_repository: name: MariaDB description: MariaDB repo baseurl: http://yum.mariadb.org/10.3/rhel7-amd64 gpgkey: https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck: true # MariaDBのインストール - name: Install MariaDB server yum: name: MariaDB-server state: present # 起動および自動起動設定 - name: Start MariaDB service systemd: name: mariadb state: started enabled: yes
インストールはyumモジュール、起動は systemdモジュールを使用しています。
記述できたら、実行前チェックで差分を確認し、実行します。
$ ansible-playbook -i inventory/dev --connection=local dev.yml --diff --check $ ansible-playbook -i inventory/dev --connection=local dev.yml --diff
完了すると systemctl status mysql
でactiveになっていることが確認でき、 mysql -uroot
でログインもできるかと思います。
無事、MariaDBを起動するところまでできましたが、実際に利用するにはこれではまだ不十分です。
rootはデフォルトのままですし、ユーザーの作成もしていなければ、設定ファイルも準備できていません。
次はこの辺りのタスクを記述する必要がありそうです。