Slide 1

Slide 1 text

#RAKUSMeetup ©2022 RAKUS Co., Ltd. ©2022 RAKUS Co., Ltd. 入社して3年間で 『Rundeck』を使って自動化した 「面倒」な作業たち 株式会社ラクス インフラ開発部 金森聖人

Slide 2

Slide 2 text

#RAKUSMeetup ©2022 RAKUS Co., Ltd. 自己紹介 金森聖人(かなもり まさと) ■経歴 2015年 静岡県から上京 2019年 某工業系大学 夜間学部卒業 同年 株式会社ラクス入社 研修後 インフラ開発部に配属 2020年 「楽楽販売」インフラチーム配属 ■趣味 音楽 遊戯王マスターデュエル FPS(Valorant Apexは難しい)

Slide 3

Slide 3 text

#RAKUSMeetup ©2022 RAKUS Co., Ltd. 「面倒」な作業

Slide 4

Slide 4 text

#RAKUSMeetup ©2022 RAKUS Co., Ltd. 「面倒」な作業 ■なぜ「面倒」と感じるのか ・同じような作業の繰り返し ・実施する頻度が多い ・失敗した場合のリスクが大きい ・時間が掛かる ・作業自体にプレッシャー…

Slide 5

Slide 5 text

#RAKUSMeetup ©2022 RAKUS Co., Ltd. 「面倒」な作業 ■なぜ「面倒」と感じるのか ・同じような作業の繰り返し ・実施する頻度が多い ・失敗した場合のリスクが大きい ・時間が掛かる ・作業自体にプレッシャー… 自動化しよ

Slide 6

Slide 6 text

#RAKUSMeetup ©2022 RAKUS Co., Ltd. 「面倒」を解消する会社 ○楽楽精算 楽楽明細 楽楽販売 楽楽勤怠…etc → 企業を運営する上での「面倒」を解消するツール! ○社内の風潮的にも… → 生産性を上げたい!効率的に仕事をしたい!というマインド

Slide 7

Slide 7 text

#RAKUSMeetup ©2022 RAKUS Co., Ltd. 新卒入社1年目から自動化 これやって みようか! 承知! ・新卒研修は開発もインフラも一緒にプ ログラミング言語でアプリを作る研修をし てた ・インフラ配属後もスクリプト系の研修が あった → ある程度認められた(?)ため配属初期 から自動化の一部に携わることに 配属2カ月後くらいのある日

Slide 8

Slide 8 text

#RAKUSMeetup ©2022 RAKUS Co., Ltd. Rundeck

Slide 9

Slide 9 text

#RAKUSMeetup ©2022 RAKUS Co., Ltd. 『Rundeck』を使おう ■Rundeckとは ・コミュニティ版を無料で利用可能 ・ssh経由でJOBを実行できるツール ・エージェントレス ・コマンドやスクリプトの実行が可能 ・JOBデータのgit管理可能 ・管理対象のサーバを登録可能 タグ管理可能 ・定期実行可能(cron表記もOK)

Slide 10

Slide 10 text

#RAKUSMeetup ©2022 RAKUS Co., Ltd. Rundeck -メリット- rundeck サーバ1 サーバ2 サーバ3 サーバ4 サーバ5 サーバ6 ■ssh経由でJOBを実行できるツール ■エージェントレス ・公開鍵認証 ・パスワード登録 等 ssh経由でJOBを実行するため、 クライアント側への特別な設定や エージェントのインストールが不要! →・クライアント側の設定変更が軽微 ・22番portでの通信のため ネットワーク関連設定も必要なし ssh ssh ssh ssh ssh ssh

Slide 11

Slide 11 text

#RAKUSMeetup ©2022 RAKUS Co., Ltd. Rundeck -メリット- ■管理対象のサーバを登録可能 タグ管理可能 ・JOBを実行するサーバをyaml,xml形式でファイルに記 載することで実行先の登録が可能 →実行ごとに対象の情報を 入力する必要なし ・登録したサーバ情報にタグを付与可能 → 全ての〇〇サーバで情報取得! みたいなパターンが一撃で完了! rundeck サーバ1 (service) サーバ2 (service) サーバ3 (management) サーバ4 (service) サーバ5 (management) サーバ6 (service) [service]のタグを持ったサー バにだけ実行!

Slide 12

Slide 12 text

#RAKUSMeetup ©2022 RAKUS Co., Ltd. Rundeck -メリット- ■コマンドやスクリプトの実行が可能 ■JOBデータのgit管理可能 ・実行できる内容はコマンド、スクリプトからansible までと多岐にわたる。 ・ツール独自の記載方法等も少ない →導入ハードルが低い! rundeck サーバ1 (service) サーバ2 (service) サーバ3 (management) サーバ4 (service) サーバ5 (management) サーバ6 (service) command script ansible ansible script command

Slide 13

Slide 13 text

#RAKUSMeetup ©2022 RAKUS Co., Ltd. Rundeck -メリット- ■定期実行可能(cron表記もOK) ・作成したJOBの定期実行・時間指定可能 → スクリプトファイルをサーバごとに配布する必要 なし! → サーバ上のcron,crontabからの脱却! rundeck サーバ1 (service) サーバ2 (service) サーバ3 (management) サーバ4 (service) サーバ5 (management) サーバ6 (service) AM2時にJOB_A実行! AM8時にJOB_B実行!

Slide 14

Slide 14 text

#RAKUSMeetup ©2022 RAKUS Co., Ltd. Rundeck

Slide 15

Slide 15 text

#RAKUSMeetup ©2022 RAKUS Co., Ltd. Rundeckで自動化したこと

Slide 16

Slide 16 text

#RAKUSMeetup ©2022 RAKUS Co., Ltd. Rundeckで自動化したこと •サービス用サーバ構築 •サーバ正常性チェック •サーバからの一括情報取得 •リリース作業の一部

Slide 17

Slide 17 text

#RAKUSMeetup ©2022 RAKUS Co., Ltd. Rundeckで自動化したこと ■サービス用サーバ構築,サーバ正常性チェック <従来> ・構築対象サーバ上で手順書通りに構築作業 ・構築用スクリプトを実行 ・複数の管理系サーバに設定追加作業 ・構築後には100項目くらいのチェックシート! → 手動作業がおおい! → 時間が掛かる → 1つのミスで顧客影響の可能性 <自動化後> ・WebUIに変数を入力して実行ボタンを押すだけ ・管理系サーバへの設定追加もまとめて実行 ・構築後にはチェックまで実行 → 実行した後は結果を待っているだけ → 実行中は手が空く → JOB化しているので品質が均一に PC サーバ サーバ サーバ サーバ Rundeck サーバ サーバ サーバ サーバ PC

Slide 18

Slide 18 text

#RAKUSMeetup ©2022 RAKUS Co., Ltd. Rundeckで自動化したこと ■サーバからの一括情報取得,リリース作業の一部 <従来> ・ひたすらssh&スクリプト実行! → パスワード入力が毎回発生する → 直列にしか作業不可能 → 実行対象ミスの恐怖 <自動化後> ・rundeckサーバから一括実行! ・時間指定,定期実行可能なため →サーバ構築時に接続経路は確保済み →並列実行OK → tag機能で実行対象ミスをしずらい → 作業漏れ防止! PC サーバ サーバ サーバ サーバ Rundeck サーバ サーバ サーバ サーバ PC

Slide 19

Slide 19 text

#RAKUSMeetup ©2022 RAKUS Co., Ltd. Rundeckで自動化したこと ■Rundeckの導入により削減された時間 ・サービス機構築 <従来> 1サーバ60分程度の工数 <自動化後> 1サーバ20分程度の工数 JOB作成から2年間で約400台の構築をしたので… (60分-20分)×400台=16,000分≒266.6時間の削減に成功!

Slide 20

Slide 20 text

#RAKUSMeetup ©2022 RAKUS Co., Ltd. Rundeckを使って感じたデメリット

Slide 21

Slide 21 text

#RAKUSMeetup ©2022 RAKUS Co., Ltd. Rundeckを使って感じたデメリット ・JOBフローが図として展開されないため感覚的に掴みにくい ・一部のnodeのみ実行失敗した場合のリトライがしにくい ・Rundeckサーバ自体がダウンした場合に影響が大きい ・実行ログをしっかりとるためにスクリプト内でロギングが必要 ・実行ログがたまり続けるため定期削除が必要 ・データベースがデフォルトでH2なため導入時には別のDBを組み合わせた ほうが管理しやすそう

Slide 22

Slide 22 text

#RAKUSMeetup ©2022 RAKUS Co., Ltd. まとめ

Slide 23

Slide 23 text

#RAKUSMeetup ©2022 RAKUS Co., Ltd. まとめ ・「面倒」な作業は自動化を進めよう! ・自動化の選択肢としてRundeck! ・ssh経由!設定変更軽微特定サーバのみ実行! ・Rundeckサーバ自体が落ちたら… JOBフロー図は無い… ・浮いた時間は別の作業の自動化に使いたい