Upgrade to Pro — share decks privately, control downloads, hide ads and more …

小さく始めるAnsible

 小さく始めるAnsible

Ansible Night 2024.3の登壇資料です。
Ansibleを使い始めるハードルをいかに下げていくか、私なりの見解を示します。

---

Ansible Night 2024.3
https://ansible-users.connpass.com/event/310794/

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

えんでぃ

March 14, 2024
Tweet

More Decks by えんでぃ

Other Decks in Technology

Transcript

  1. これ全部できないと自動化しちゃダメなのでしょうか? 4 条件分岐 繰り返し コネクションプラグイン コレクション Jinja ロール 変数 import/include

    モジュール、YAML プレイブック、インベントリ Ansible拡張機能 VS Code ansible-navigator コンテナ GitHub / GitLab / ... Git
  2. 条件分岐 繰り返し コネクションプラグイン コレクション Jinja ロール 変数 import/include モジュール、YAML プレイブック、インベントリ

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

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

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

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

    モジュール、YAML プレイブック、インベントリ Ansible拡張機能 VS Code ansible-navigator コンテナ GitHub / GitLab / ... Git ネットワークの⾃動化
  7. 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
  8. デモの概要 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スイッチ
  9. (参考) 詳細な構成図 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