![見出し画像](https://assets.st-note.com/production/uploads/images/71522979/rectangle_large_type_2_a35cf08ae5567285d69c166b3b9aa2cc.jpeg?width=1200)
インフラエンジニアは何をやっているのか #3ヶ月目
あっという間に2月になりました🤭
最近は一週間の時間感覚もかなり早く感じます.
インフラエンジニアになって3ヶ月が経過しました.今回の記事では先月に自分が何をやってきたのかを書いていきたいと思います.
3ヶ月目の活動(業務内容)
主に三つのことをやっていました.
監視の追加
業務の環境では監視ツールとしてZabbixを使っています.ここ数ヶ月で何台かサーバやネットワーク機器が増えたので,それらを監視するために設定をしました.
インフラの知識が乏しい身からすると,この仕事も結構学びが多かったかなと思います.
単純にzabbix-agentをインストールして設定ファイルを編集しておけば動くものだと思っていましたが,各所のファイアウォールに引っかかって監視アラートが飛んだのはいい思い出です笑
業務の環境では,主にzabbix-agentを使っていたのですが,最近作ったサーバではzabbix-agent2を使うようになりました.zabbix-agent2に乗り換えた結果,zabbix-agentで動いていた監視スクリプトが動かなくなくなることがわかり,zabbix-agent2では今までの設定に加えていくつか追記をする必要が出てきました.詳しくは下記リンク参照.
Ansibleでいろいろやる
上で書いた通り,zabbix-agent2では設定ファイルにもう少し記述を増やさないといけません.さらに困ったことに,僕がインフラ下に入るずっと前からzabbix-agent2へのシフトが始まっており,どのサーバにzabbix-agent2が入っているのかわかりません😫
dev,stg,prdの全てのサーバを数えると数百台あるので(VMですが),一台ずつSSHログインして確認するわけにはいかないので,Ansibleというタスク自動化ツールを使って,一気にやってしまおうということになりました.
どんなツールにでも言えますが,よく知らずに設定して動かして大事故になっても困るので,事前の検証は重要です.モバイルチームにいた時は商用環境に触れることがデプロイ時くらいしかなかったので,商用環境を触ることに対する緊張感は忘れることがないのですが,インフラエンジニアになってからは,vCenterに並ぶ大量のVMを日々見ることになるので,商用と検証の違いの感覚が薄れてきてしまっている気がします(そもそも一つのvCenterで商用環境と検証環境を同時に管理しているのがどうなのかはなんとも言えませんが).
まずはテストということで,開発環境で展開されているzabbix-agent2が動いているサーバの設定ファイルを変更しようと思ったのですが,ここでかなり想定外のことが起きました.商用サーバと検証サーバの内部設定は常に同じにしておくことを技術部内で徹底しているのですが,開発サーバの設定は全く管理されていませんでした...
SSHログインの方法もバラバラだし,存在するはずのユーザがいなかったり,ログインした時に特定の対話型のスクリプトが走ったりと,Ansible以前の問題に直面しました🥶
問題を段階的に解決するために,zabbix-agnet2の設定は一旦諦めて,まずは全ての開発向けサーバにAnsibleを使ってSSHログインができるようにしました.基本的に何らかの方法を使ってAnsibleでサーバにログインしてSSH用のユーザを作成して,SSH用の公開鍵を配置するだけだったのですが,結構大変でした...
次に,zabbix-agent2が動いているサーバかどうかを確認するためにsystemcltコマンドを使う必要があったので,特権ユーザへの昇格が必要だったのですが,これも結構大変でした.主にCentOSとUbuntuで方法が異なる(suとsudo su)ので,ここで分岐をさせないといけなかったのですが,Ansible初心者は結構難しかったかなと思います... 結構脳筋っぽいplaybookになってしまったので少し残念ですが,playbook自体は外部に公開するものでもないのでヨシとしましょう.
紆余曲折ありましたが,なんとかして開発向けサーバに関しては,全てのサーバにAnsible経由でSSHログインできるようにして,zabbix-agent2が動いているサーバをリストアップするところまではできましたが,これからというタイミングで別件の急ぎのタスクが入ったのでここで中断しました.
PHPのアップデート
あまり詳しくは言えないのですが,諸事情あってCentOS環境サーバで使っているPHPをremiのものからSCLのものに変更してアップデートする必要が出てきました(なんとなく察してください).個人で開発していると気にすることはないかもしれませんが,言語のバージョンや使っているパッケージレポジトリはビジネスの場では結構重要みたいです.
PHPをアップデートするのですが,これも結構大変でした.個人のPCに入っているPHPをアップデートするのとは訳が違い,今動いているサービスのPHPをアップデートすることになるので,綿密な作業計画が必要です.さらに,単純にPHPをアップデートすればいいだけの話ではなく,関連するWebアプリケーションフレームワークやApache Httpdなども差し替えないといけなかったため,とても大掛かりな作業になりました.
上司も言っていましたが,インフラチームで各サーバの開発言語の管理までするのは少し無理がありそうなので,早くdockerなどのコンテナ技術を使ってマイクロサービス化して,それぞれの開発チームで言語やミドルウェアを管理したほうがいいんじゃないかと思います.
3ヶ月目の活動(その他)
業務の内容を毎月書いていてもあまり技術ブログ(?)としては微妙かもしれないので,今回から個人的な活動についても書いていきたいなと思います.
そろそろ(初歩的な)インフラの勉強がしたい
すでに活動ではなくお気持ちの表明になっています(読み飛ばした方がいいかも)😅
インフラエンジニアになって3ヶ月しかたっていませんが,常に新しいことをやっています(知らないだけではありますが).
インフラエンジニアは若いうちに何とかしてやってみたかったことなので大変感謝しているのですが,その一方で,僕が働かせていただいているインフラチームでは,既存のサービスに手を加えるような,いわゆる保守や運用といった業務内容が大半を占めているが現状です.
会社が経営方針を決めるので,新規サービスに関する案件があるかどうかはタイミングの問題ですし,社内のインフラチームの人員がとても少ないので,個人の教育よりも業務を優先するのは当然なことだとは理解しています.ただ,このままの流れで業務をやっていると,インフラエンジニアとしての基礎的な内容のほとんどが抜け落ちたまま歳を重ねてしまわないかと,結構心配になってきました.
確かにVMを増やしたりミドルウェアの設定や監視の設定をする機会が増えましたが,物理的なサーバのラッキングや配線,ネットワーク構築やそれらの動作テストといった初歩的な内容に全く触れることができていないので,そろそろなんとかしたいなと思っています.
家に勉強用のマシンが欲しい...?
上記の経緯があって,勉強用のマシンの購入を検討しているところです.自分はMacBook Proの一台しか手持ちにないのですが,せっかくインフラエンジニアになったので,何かマシンを買って結線や基本的なネットワーク構築をやってみたいなと思っています.
いきなり本格的なものを買って失敗したり,オーバースペックなものを買っても嫌なので,小型のベアボーンPCなるものを買ってみようかなとも考えましたが,最近は半導体の供給不足が深刻らしいので,部品がそろうんですかね...
ミドルタワーサイズのPCを自分で作ってみても良かったのですが,もう一つの選択肢としてラズパイを考えています.少し前にGoogleの画像検索でラズパイのクラスタリングを眺めていたら,自分のイメージしていたサーバ構築にとても似通っていたので,かなり揺れています.
おわりに
久しぶりに文章をたくさん書いたような気がします.今年の4月で社会人歴が3年目になるということで,色々な人から今後のキャリアプランについて聞かれるようになってきて,毎日何かに悩んでいるような気がします笑
最近寒いので家に帰ってきてすぐに寝てしまうので,そろそろ勉強を再開していきたいなと思います.
(追記)
ラズパイについて調べてみましたが,代理店の入荷予定が10ヶ月近く先で,amazonやメルカリでも2万円を超えるイカれた価格をしているので,また考え直します...🥶🥶🥶