業務中に起きた恥ずかしいミスを備忘録としてまとめておきます。
#1.データの移行作業でのミス
あるプロジェクトで運用中のステージング環境を、別サーバのステージング環境へと移行することになりました。
移行する必要があったのは画像とDBのデータです。
画像ファイルとDBのダンプファイルをどうやって移行しようかなーと調べていた所、scp
コマンドに行き当たりました。
scp
はリモートマシンからローカルor他のリモートマシンへとファイルのコピーを行うコマンドで、通信にsshを使用します。
$ scp オプション ユーザ名@リモートサーバのIPアドレス:コピー元のパス 保存先パス
これで行けそうだと思い、とりあえず移行元サーバからローカルへファイルを落とそうと
$ scp user@192.0.2.0:~/sample.sql ~/
と実行するも、ローカルにそれらしきファイルがありません。
特に実行時にエラーを吐いている様子もなく、なんで???となっていたのですが、
ただ単にローカル側で実行する必要があるのにリモート側で実行していたのが原因でした。
全く同じミスをやらかしている記事を見つけてようやく気付きました。
うーん恥ずかしい。
補足ですが、OpenSSH公式によるとscp
は非推奨のため、代わりにsftp
やrsync
を使うことが推奨されているみたいです。
#2.Ansibleでのミス
あるプロジェクトのローカル環境を構築することになったのですが、そのプロジェクトではDockerイメージの作成やAnsibleの適用は全て自動化されている為、Gitリポジトリをクローンし設定ファイルを少し書き換え、ビルド用のスクリプトを実行するだけで環境構築が済みます。
そのためすぐ終わるだろうと思っていたのですが......
####・ 何故かクローンでタイムアウト
リポジトリのサイズが大きいのか、サブモジュールのクローンの途中でタイムアウトが発生していました。
そのためgitの設定を
git config --global http.postBuffer 4M
とすることでバッファのサイズを調整を行い、合わせてShallow cloneを用いることでなんとかタイムアウトせずにクローンを完遂出来ました。
####・ 何故か特定のtaskでタイムアウト
その後ビルド用のスクリプトを実行し、ansible-playbookのtaskが実行されるのですが、何故かphp7のインストールを行う箇所でタイムアウトが発生しました。
原因が判明せず、先輩に相談しphp7のインストールは一旦手動で行うことに。
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.2
手動で行なった所、普通にインストール出来てしまいました。
だったらplaybookのtaskも通りそうということで、もう一度ビルドを試してみるも同じ箇所でタイムアウト。
原因が全く分からず悩んでいたのですが、実はこの時、1日前から社内VPNに繋がらない問題が発生していました。その件について先輩に確認したところ、どうやら繋がらないのは自分だけらしく、ここで自宅の回線の問題説が出てきました。
試しにテザリングでVPNに繋ぐと......繋がりました。
その後、部屋のルータを再起動してからビルドを試してみるとplaybookでのphpインストールも通りました。
完全に自宅のネット環境が原因でしたね。恥ずかしい。
社内VPNに繋がらない問題を放置したことが1番の原因ですが、リポジトリのクローンの段階で違和感に気付けたら良かったですね。
#最後に
一番恥ずかしいのは18日担当のアドベントカレンダーを24日に書いていることです。
内容にミスや勘違いがある際には指摘していただけると幸いです。