自動化大好きエンジニアLT大会 参加記録

2月2日に開催された自動化大好きエンジニアLT会-vol.6に参加しました。
イベントの内容はAnsibleやGAS,Lambdaといった自動化技術をつかい日々の業務や生活を改善したというお話を10名の方からしていただきました。
この記事では感想を交え内容を記そうと思います。

1.既存サーバを後からAnsibleで構成管理する

手動で構築しているサーバを新たにAnsibleで自動化する場合に気を付けることを教えていただきました。私自身Ansibleは触ったことはあるのですが起動したり、軽微な修正を加えたりしたことのある程度なので、
どういったことに気をつけてサーバーを構築する手順をAnsibleに落とし込むのか気になっていました。

まず大事なことは段階的に落とし込んでいくことです。
部分的に実装しなければ影響範囲も大きく修正が困難になるので適用範囲を絞り少しずつ範囲を広げていくことが大事だとお話しされていました。

次に本番環境にDryRunして差分を確認することです。
Dryrunとは実際には動作しませんが実行可能か確認するために使用する機能でそこに--diffオプションを付与することでファイルの差分を確認することができます。ですがDryRunでチェックできないものもあり、dryrunでは本当に実行できるかわかりません。(command系の処理はskipされて未定義の場合,エラーになりdryrunではスキップされる)ですが check_mode: no とすれば、commandモジュールを強制実行させることができ後続のモジュール実行犯定時に変数がなくてエラーとなることを回避できます。
また既存環境にたいしてファイル操作する場合はbackup: yesにすることでファイルのバックアップを取ることもおすすめしていました。

2.仮想基盤でのVM大量生産を自動化してみた

これまでは仮想マシンを手作業でポチポチ作成していましたが
仮想基盤で提供されているAPIを使い自動化したというお話でした。
確かに手動でポチポチしているとコストもかかりますしオペミスも発生するのでAPIが用意されているととても便利で使いたいなと思いました。

3.マルチアカウントのCloudFormation確認作業自動化

CloudFormationでそれぞれのお客様に環境を構築しており、
それぞれ少しずつリソースに変更が必要なのでスタックのパラメータでリソース差異を吸収しているというお話でした。
ですがその差分を比較する作業をそれまでは一つずつ確認していましたが確認作業も自動化し作業時間も減りミスもなくなったそうです。(どのように自動化したかについて聞きそびれてしまいました。)

4.Rundeckの強みを活かした即時実行ジョブを考える

まずRundeckとはOSSのジョブ管理ツールです。手軽に使える反面UIが地味、if分岐できない、ジョブがこけたときそこからリトライできないなど欠点があるそうです。
ですがシンプルが故の良さがあり例えば、非常に軽い、ジョブの標準出力がほぼリアルタイム、一つのジョブで引数が切り替えられる、ジョブの実行オプションのUIを自作できる。またansibleと連携すると途中からリトライ可能になるので相性が良かったりするなどがあげられます。

自分はRundeckを知らずお話を聞いていたのですが確かに管理できていないcronを手軽に管理できるのは便利だなと思いました。

5.シェルスクリプトをサーバーレスでcronしたい

シェルスクリプトは自由自在で無限の可能性があり、そのシェルスクリプトをサーバレスで実行したいというお話でした。
サーバレスにはサーバを持ちたくないお金をかけたくない、自走で実行したいという良さがあり、今回はLambdaとCloud WatchEventをつかって実装していました。
LambdaはAWSのサーバレスなサービスで最近はいろいろな言語が対応してきました。cloud WatchEventはcronのように時間指定し特定のLambdaを実行ができます。またServerless FrameworkをつかうことでAWSリソースを一括管理していました。
まずは```npm install -g serverless```でインストールし
```sls create --template aws-provided```でカスタムランタイムを実行するためにhandler.shのhello関数を修正し目的のシェルスクリプトを実行できるようにします。一通り実装し終わったら```sls invoke local -f hello```でローカルで動作確認します。特に問題がなければserverless.ymlのeventsを記述し定期実行できるようにします。```sls deploy```でデプロイし完了です。

Lambdaでシェルを使えることやServerless Frameworkの使い方を知らなかったのでこのお話を聞いて久々触りたくなりました。
また、よい記事があったので張っておきます。
https://www.techscore.com/blog/2018/12/25/aws-lambda-custom-runtime-%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%92%E5%8B%95%E3%81%8B%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F/

6.このタスク、忘れないうちにNotionに登録しておいて

slackの内容をnotionに書き込むといった内容で
最近私もnotionのAPIを触ったことがあったのでとても興味がありました。
実装方法はslackのボットを作りslack->lambda(bolt)->notionといった順路でTodoを書き込みます
ToDoLogging->とどろぎさんというキャラクターが可愛かったです。

7.楽精算iOSアプリのCI/CD紹介

モバイルアプリのCI/CDのお話でiOSアプリの知識は疎くCI/CDでどういったことを実行するのか気になっていました。
Bitrise上でCI/CDを実行しLintやカバレッジを分析していました。
今後はローカルのテストのためにipaファイルを作れるようにしたりUIテストをできるように環境を整えていきたいともおっしゃっていました。

8.その集計、GASにやってもらいましょう

GASをつかって提携作業の時間が半分になったお話で、
管理業務の一環として作業内容と実働を週一でチェックしていましたが
Excelにエクスポートして手作業で進める手間があり、全てGASで自動化し作業時間が半分になったそうです。
GASは手軽なので非エンジニアにもおすすめです。

9.勉強用Youtubeチャンネル動画を毎日自動で定期配信

毎日一つずつチャンネルの動画を見ていきたいけど
どの動画を見たのかわからなくなったり見るのを忘れるため
YouTubeの動画をGASでspreadSheetに一覧化し動画投稿があれば更新し、
その動画を見たかどうかのフラグのカラムを作り視聴の重複を防ぐようにしていました。
また出勤時間や帰宅時間にslackにURLを投稿し見忘れを防止しておられました。
youtube->spreadSheet->slackの動きをGASとWebHooksで簡単に実現していて自分も試したくなりました。

10.「楽楽精算」の自動化で運用担当者の業務を楽楽にしました。

Webサービスから手動で各種データをダウンロードし、そのデータから資料を作成を手動でしていたが
1時間近くかかり手作業なのでミスもあるのでpythonとseleniumを使用し自動化。
作業時間も減り、自動化したのでミスもなくなり社内改善の賞をいただいたそう。
自分も社内で困っている人を見かけたらエンジニアリングの力で役に立ちたいと思えるお話でした。

感想

日々の業務や日常の生活を改善していくお話を10個も聞くことができ、
自分も何かやりたいという気持ちになりました。エンジニアにはなんでも自動化できる力があるので毎日やっている定例作業を書き出し今日教えていただいた技術をマッチさせて改善していきたいです。

この記事が気に入ったらサポートをしてみませんか?