開発環境
Git Lab
Source Tree
Visulal Studio Code
Docker
Ansible
作業環境
1.Git LabのリポジトリをoriginにしてSource Treeにリモートリポジトリ設定
2.Source Treeでブランチを切ってローカルに保存
3.ローカルのリポジトリをVSCodeで読ませてコード編集
4.編集したらコミット、プル
5.サーバにログインしてDockerを立ち上げて同期・コンテナ起動
6.Ansibleでdry run(diffオプションで特定のノードグループとの比較を取る)
1,2は事前設定なので実作業としては3~6を繰り返すことになる。
ハマった箇所と原因と対策
・一括変換によるコーディングミス
The error appears to have been in '///.yml': line *, column *, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
********:
^ here
だいたいこういう感じでシンタックスエラーが出る。
エラー箇所そのものを表示してくれるわけではないのできちんと前後関係を読まなければいけない。
この場合、変数にエラーがあったということだが、実際は変数の次の行でダブルクォートの囲みミスがあった。
before - /usr/local/src/.rpm"
after - "/usr/local/src/.rpm"
ダブルクォートの囲みミスは一括変換でやりがちなので気をつけたい。
・半角スペースの文字コードエラー
VSCode上で編集中は気づかないが、文字コードが混在していてサーバに同期したときに半角スペースが???と表示されていることがあった。
前任者から引き継いだ作業だったが前任者と会話をしたことはなかったので確認していなかった。
度々起きたエラー。
・ansible.cfgがない
ERROR! the role '***' was not found in ***
The error appears to have been in '****.yml': line *, column *, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
roles:
- { role: ****** , tags: [ '*****' ] }
^ here
そんなロールはないと言われている。
roles_pathの場所が定義されていない。rolesの変数はあってもどこにrolesはあるのか?と問われている状態。
原因はansible.cfgを配置していなかったこと。
ここが一番ハマったが、他の環境からコピーして解決した。
・スペルミス
そんなロールはないその2。ありがち。
directoryならdirectolyなどと書いているようなもの。
・node_groupが存在しない
そんなロールはないその3。
特定のノードグループと比較しながらdry runを流していたが、
あるノードグループだけ、ymlファイルはあるのにそんなロールはないと言われてしまう。
ノードグループの数をチェックしていたら、そのノードグループはディレクトリごと存在していなかったというオチ。
他にもあったら追記するかもしれない。