Memo

メモ > サーバ > 各論: Ansible > トラブル

■トラブル
■OSにログインするたびに「LC_CTYPE: cannot change locale」のようなエラーが表示される Trouble.txt の同項目を参照 Ansibleで無効化する方法は、このファイル内の「ロケールの作成」を参照 ■MySQLの起動失敗 初回構築時にMySQLのユーザやデータベースも作成しようとするとエラーになってMySQLが起動しない notifyでの再起動は最後にまとめて1回行われる仕様みたい MySQL以外も含めたすべてのタスクが完了してから、まとめて再起動が行われる つまり、MySQLの再起動を行う前にデータベースやユーザを作ろうとするためエラーになるみたい Ansible: notify と handlers の使い方について調べた - CUBE SUGAR CONTAINER https://blog.amedama.jp/entry/2015/09/01/214912 対策に
- name: restart mysql service: name=mariadb state=restarted
で再起動はできるが、必ず再起動してしまう問題がある そもそも、データベース作成とユーザ作成はAnsibleの管轄外とする方がいいか Deployerで「setup」のようなタスクを用意して、MySQLにユーザとDBを作成して、トップページのサンプルも更新するか もしくはこれは単なるデータ登録だしパスワードも含むので、特にコード管理する必要は無いか gitからのPULLやそのための鍵登録などもその際に行うか DeployerでLaravelをデプロイする - Qiita https://qiita.com/shalman/items/c09eb23137a9d5269f10 Deployer自体のインストールはtargetではなくcontrollerにインストールするので、Deployer自体のインストールは問題ないはず 以下のコマンドでMySQLを削除できる。データベースのインストールだけ再度試す場合に
# rpm -qa | grep aria # yum remove mariadb-libs-5.5.60-1.el7_5.x86_64
Ansibleの事例とちょっとしたTips - Qiita https://qiita.com/volanja/items/d38fe0678848bae6902f MySQLのバージョンは関係ないと思うが一応 AnsibleでMySQLの新しいバージョンをインストールしてDB・ユーザ作成する時の注意点 - Qiita https://qiita.com/bboobbaa/items/d2288724bdefeff1c550 ■MySQLのユーザを手動で作る MySQLのユーザを手動で作る場合、targetサーバのMySQLにrootでパスワードなしでログインして以下を実行する
$ mysql -u root >CREATE USER vagrant@localhost IDENTIFIED BY 'abcd1234';
データベースも作成する場合、以下を実行する
>CREATE DATABASE test DEFAULT CHARACTER SET utf8mb4;
以下のコードで、PHPからMySQLに接続できる
<?php try { $pdo = new PDO( 'mysql:dbname=test;host=localhost', 'vagrant', 'abcd1234' ); $stmt = $pdo->query('SELECT NOW() AS now;'); $data = $stmt->fetch(PDO::FETCH_ASSOC); echo "<p>MySQL=" . $data['now'] . "</p>\n"; $pdo = null; } catch (PDOException $e) { exit($e->getMessage()); }

Advertisement