Slide 1

Slide 1 text

小さく始めるAnsible 2024/3/14 えんでぃ 1

Slide 2

Slide 2 text

自己紹介 ● えんでぃと申します ● 東京在住 ● 35さい ● ネットワークエンジニア ● Ansibleが好き 2

Slide 3

Slide 3 text

はじめに Ansibleは多機能。補助ツールもたくさんあります 全部知らなきゃ⾃動化しちゃいけないのでしょうか? 3

Slide 4

Slide 4 text

これ全部できないと自動化しちゃダメなのでしょうか? 4 条件分岐 繰り返し コネクションプラグイン コレクション Jinja ロール 変数 import/include モジュール、YAML プレイブック、インベントリ Ansible拡張機能 VS Code ansible-navigator コンテナ GitHub / GitLab / ... Git

Slide 5

Slide 5 text

Ansibleは多機能。補助ツールもたくさんあります 全部知らなきゃ⾃動化しちゃいけないのでしょうか? もちろん、そんなことないです 5 はじめに

Slide 6

Slide 6 text

はじめに Ansibleは多機能。補助ツールもたくさんあります 全部知らなきゃ⾃動化しちゃいけないのでしょうか? もちろん、そんなことないです 簡単なところから始めて、⼩さな成果を早く出しましょう 徐々にスキルアップしながら、成果も育てていきましょう その⽅が効率的だし、何より楽しいから継続できるのです 6

Slide 7

Slide 7 text

条件分岐 繰り返し コネクションプラグイン コレクション Jinja ロール 変数 import/include モジュール、YAML プレイブック、インベントリ Ansible拡張機能 VS Code ansible-navigator コンテナ GitHub / GitLab / ... Git できることから少しずつ 7 Hello World

Slide 8

Slide 8 text

できることから少しずつ 8 条件分岐 繰り返し コネクションプラグイン コレクション Jinja ロール 変数 import/include モジュール、YAML プレイブック、インベントリ Ansible拡張機能 VS Code ansible-navigator コンテナ GitHub / GitLab / ... Git Linuxにログイン

Slide 9

Slide 9 text

できることから少しずつ 9 条件分岐 繰り返し コネクションプラグイン コレクション Jinja ロール 変数 import/include モジュール、YAML プレイブック、インベントリ Ansible拡張機能 VS Code ansible-navigator コンテナ GitHub / GitLab / ... Git Linuxの⾃動化 (1台)

Slide 10

Slide 10 text

できることから少しずつ 10 条件分岐 繰り返し コネクションプラグイン コレクション Jinja ロール 変数 import/include モジュール、YAML プレイブック、インベントリ Ansible拡張機能 VS Code ansible-navigator コンテナ GitHub / GitLab / ... Git Linuxの⾃動化 (複数台)

Slide 11

Slide 11 text

できることから少しずつ 11 条件分岐 繰り返し コネクションプラグイン コレクション Jinja ロール 変数 import/include モジュール、YAML プレイブック、インベントリ Ansible拡張機能 VS Code ansible-navigator コンテナ GitHub / GitLab / ... Git ネットワークの⾃動化

Slide 12

Slide 12 text

12 なにごとも基礎がだいじ

Slide 13

Slide 13 text

小さく始めるAnsible ということで本題に⼊ります 13

Slide 14

Slide 14 text

おしながき ● Ansibleの始め⽅ ● 実機デモ 14

Slide 15

Slide 15 text

Ansibleの始め方 第⼀段階 第⼆段階 第三段階 ⾃動化対象 ⾃動化しない (Hello world!) 簡単なものから⾃動化 (Linux中⼼) 労⼒と効果が⾒合えば⾃動化 変数 使わない インベントリ変数だけ使う set_factや外部変数も使い分ける エディタ 知ってるエディタ (viでもOK) IDE (VS Code + Ansible拡張機能など) - コーディング規約 無視 Linterの警告をつぶす 規約のカスタマイズ、チーム内に展開 バージョン管理 ファイルコピー Git (mainブランチのみ) Git + 適切なブランチフロー (GitHub Flowなど) プレイブックの ファイル分割 1ファイル (playbook.ymlのみ) 意味のある塊ごとにファイル分割。 import_tasksを活⽤ よく使うタスクをロール化 実⾏環境管理 pip install --user ansible venvの活⽤ コンテナの検討 (ansible-navigator) テスト⾃動化 ⾃動化しない (⼿動で動作確認) 動作確認⽤の環境構築を⾃動化、 または半⾃動化する moleculeやCIの活⽤ 15

Slide 16

Slide 16 text

デモ 16

Slide 17

Slide 17 text

デモの概要 1. Ansibleインストール 2. Ansibleの基本 ○ Hello World 3. VS Codeの活⽤ 4. Linux⾃動化 ○ AnsibleからLinuxへの疎通性確認 ○ Apache httpdのインストール ○ firewalldの通信許可 ○ IPアドレスの設定 ○ 変数の使⽤ 5. ネットワーク⾃動化 ○ IPアドレスの設定 6. 疎通確認 17 Ansible Linux1 Linux2 ルータ L2スイッチ

Slide 18

Slide 18 text

(参考) 詳細な構成図 18 ansible1 linux1 linux2 veos1 L2スイッチ ens3 192.168.0.10/24 ens3 192.168.0.12/24 ens3 192.168.0.13/24 Management1 192.168.0.11/24 ens4 192.168.1.2/24 ens4 192.168.2.2/24 Ethernet1 192.168.1.1/24 Ethernet2 192.168.2.1/24 インターネット ゲートウェイ 192.168.0.1/24 環境 veos : Arista vEOS linux, ansible : CentOS Stream 9

Slide 19

Slide 19 text

デモ用のリポジトリ 19 https://github.com/stopendy/ansible-night-202403

Slide 20

Slide 20 text

まとめ 20

Slide 21

Slide 21 text

Ansible、小さく始めてみました 21

Slide 22

Slide 22 text

22 できることからこつこつと Designed by Freepik

Slide 23

Slide 23 text

23 ありがとうございました

Slide 24

Slide 24 text

(参考) デモ用の環境 24

Slide 25

Slide 25 text

GNS3使ってます 25

Slide 26

Slide 26 text

GNS3についてもっと知りたい方は 26 えんでぃの技術ブログをご覧ください。 https://endy-tech.hatenablog.jp/archive/category/GNS3 ブログではLinuxの⼿順を例にしていますが、Windows + VirtualBoxでも動きます。 Macは...プロセッサとの相性があるので...動かないかもしれません...。