Ansible入門.pptx

開発者でも知っておきたいインフラ構築自動化
- Ansible入門編
Developer Dojo
2023. 9.27
© 2023 IBM Corporation 2
© 2023 IBM Corporation
What is
Ansible?
Ansibleは2012年にリリースされたインフラ自動化のソフトウェアです。
Ansible=構成管理ツールだったのですが、すごい進化しているため、
行為性管理もできる自動化ツールといったほうが正しい気がしています。
サーバやネットワーク、仮想環境だけでなく様々なミドルウェアやクラウド環境に対して、
構築や設定変更ができます。
Ansible offers open-source automation that is simple,
flexible, and powerful.
Simple
Yaml形式で短く、
簡潔に自動化を定義
Powerful
様々なIT機器、
クラウド、
ミドルウェアに対応
Flexible
エージェントレス!
© 2023 IBM Corporation 3
© 2023 IBM Corporation
What is
IaC ?
Infrastructure as Code
インフラの構成や変更作業をコードで記述する。
ソフトウェア開発の進め方をインフラに適用していこうぜという考え方
ツールで自動化 バージョン管理 コードで管理
IaC適用前の課題...
運用手順書を見ながら同じ作業を手作業で実施。
何台ものサーバーで同じ作業を繰り返すため、どこかで設定ミスが発生してしまう。
パッチ適用など変更を行った情報をExcelで管理し、運用手順書を更新する。
ツールで自動化 バージョン管理 コードで管理
© 2023 IBM Corporation 4
Ansible入門
© 2023 IBM Corporation 5
© 2023 IBM Corporation
Key
Components Module
Collection
Inventory
tgt1 10.0.1.22
tgt2 xx.xx.xx
Playbook
- Targets
- Task
- Handler
Server
Network
Cloud
Ansible
RedHat社によってpythonで開発されたOSS
ターゲット
今日ご紹介するAnsibleの基本要素です。Module/Inventory/Playbookの
3つを覚えてください。
© 2023 IBM Corporation 6
ターゲット上で実行されるタスクの単位で、Ansibleが自動化できる内容がたくさん用意されている。
モジュール は「タスクプラグイン」または「ライブラリープラグイン」とも呼ばれる
built-inモジュールと呼ばれる最初から入っているモジュールに加え、
追加で導入するモジュールはコレクションとしてまとめられている。
built-in
モジュール郡
Module &
Collection
自動化の部品 &
部品のセット
利用可能なモジュールの一覧
pingモジュールで
疎通確認する > ターゲット
カテゴリー モジュール名 概要
コマンド系 shell shellを実行する
ファイル操作系 file ファイル作成、リンク
copy コピーする
パッケージ管理系 yum パッケージ更新、インストール
クラウド操作系 ec2 ec2の作成、停止、起動
© 2023 IBM Corporation 7
Inventory Ansibleがターゲットとする対象を指定するファイルをinventoryと呼びます。
複数ホストを1つのグループにまとめたり、グループに対して変数を設定できたりする。
自動化する対象を指定する [grp1]
tgt1
tgt2
[grp2]
tgt3.example.com
10.0.11.121
[all:vars]
ansible_user=root
ansible_ssh_password=password
[grp1:vars]
myname=sagawa
inv ファイル
grp1って言われたら
tgt1とtgt2を操作するんですね!
承知しました!
$ ansible –i inv tgt1 –m ping –o
© 2023 IBM Corporation 8
とりあえず試してみよう その1
Ad-Hoc コマンド
Podman 環境
ssh
Controller
IaCではなくなってしまいますが、Playbookを書かずにコマンドで操作する方法をAd-Hocといいます。
ちょっとした検証に使う
[ansible-handson]# ansible -i inv grp1 -m ping –o
tgt2 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python":
"/usr/libexec/platform-python"},"changed": false,"ping": "pong"}
$ ansible -i inventory_name target_name –m module_name
Target
sshd
© 2023 IBM Corporation 9
Playbook
---
- name: first plyabook
hosts: all
become: yes
tasks:
- name: first task
yum:
name: httpd
state: latest
- name: start
service:
name: httpd
state: started
enabled: yes
- name: copy new html
copy:
src: files/index.html
dest: /var/www/html/
Playbook.yaml
Playパート: ヘッダー部分
taskパート: 自動化の定義
- その1
任意のタスク名
使うモジュール
モジュールへ渡す引数
- その2
- その3
YAML形式で記述し、ターゲットの望ましい状態を定義する
© 2023 IBM Corporation 10
© 2023 IBM Corporation
YAMLと
仲良しですか?
参加者の皆様はYAMLの読み書きできますか?
Jsonとはマブダチだけど...実はYAMLはあまり好きじゃないという方向けにYAMLのおさらい。
YAMLはjsonの上位互換 (らしいです)
ルール:インデントするときはTab使えない。配列は ハイフンで表す
#可読性Good!コメント書ける!
---
people: #コメント
- name: saito
age: 10
friend: true
- name: sagawa
age: 12
friend: false
{
"people": [
{
"name": "saito",
"age": 10,
"friend": "yes"
},
{
"name": "sagawa",
"age": 12,
"friend": "no"
}
]
}
vs
© 2023 IBM Corporation 11
とりあえず試してみよう その2
Playbookの作成と実行
Podman 環境
Controller Target1
Target2
playbook
---
- name: first plyabook
hosts: all
become: true
tasks:
- name: first task
yum:
name: httpd
state: latest
- name: start
service:
name: httpd
state: started
enabled: yes
- name: copy new html
copy:
src: files/index.html
dest: /var/www/html/
1. httpdをインストールして、
2. startして、
3. htmlファイルをコピーする
© 2023 IBM Corporation 12
とりあえず試してみよう その2
Playbookの作成と実行
冪等性
何度繰り返しても、同じ結果が得られる
Playbookに従い処理を実行する前に、
本当に処理する必要があるかを確認しています。
httpdがインストールされているか?
指定のバージョンか?
を確認した上で、異なる場合だけ処理を実行します。
そのため、同じplaybookを2回、3回と実行しても
結果は変わりません。
Podman 環境
Controller Target1
Target2
playbook
© 2023 IBM Corporation 13
Ansible触ってみよう!
https://killercoda.com/ansible/scenario/ansible-101
webでハンズオンができます!
日本語もあるのでおすすめ!
お時間ある方はぜひ実施してください!
19時まで残っているので、QA受け付けます。
1 of 13

Recommended

第31回「今アツい、分散ストレージを語ろう」(2013/11/28 on しすなま!) by
第31回「今アツい、分散ストレージを語ろう」(2013/11/28 on しすなま!)第31回「今アツい、分散ストレージを語ろう」(2013/11/28 on しすなま!)
第31回「今アツい、分散ストレージを語ろう」(2013/11/28 on しすなま!)System x 部 (生!) : しすなま! @ Lenovo Enterprise Solutions Ltd.
18.6K views47 slides
Fluentdのお勧めシステム構成パターン by
Fluentdのお勧めシステム構成パターンFluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターンKentaro Yoshida
51.1K views43 slides
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー by
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナー
講演資料: コスト最適なプライベートCDNを「NGINX」で実現するWeb最適化セミナーNGINX, Inc.
749 views53 slides
Ansibleで始めるインフラ構築自動化 by
Ansibleで始めるインフラ構築自動化Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化dcubeio
56.2K views63 slides
Lockfree Queue by
Lockfree QueueLockfree Queue
Lockfree QueueKumazaki Hiroki
4.7K views19 slides
TIME_WAITに関する話 by
TIME_WAITに関する話TIME_WAITに関する話
TIME_WAITに関する話Takanori Sejima
24.6K views51 slides

More Related Content

What's hot

MySQL 8.0で憶えておいてほしいこと by
MySQL 8.0で憶えておいてほしいことMySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいことyoku0825
18.8K views37 slides
フロー技術によるネットワーク管理 by
フロー技術によるネットワーク管理フロー技術によるネットワーク管理
フロー技術によるネットワーク管理Motonori Shindo
10.7K views84 slides
NVIDIA HPC ソフトウエア斜め読み by
NVIDIA HPC ソフトウエア斜め読みNVIDIA HPC ソフトウエア斜め読み
NVIDIA HPC ソフトウエア斜め読みNVIDIA Japan
733 views63 slides
さいきんのMySQLに関する取り組み(仮) by
さいきんのMySQLに関する取り組み(仮)さいきんのMySQLに関する取り組み(仮)
さいきんのMySQLに関する取り組み(仮)Takanori Sejima
6.9K views63 slides
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで by
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までDocker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までMasahito Zembutsu
15.9K views62 slides
OpenStackで始めるクラウド環境構築入門 by
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門VirtualTech Japan Inc.
34.5K views66 slides

What's hot(20)

MySQL 8.0で憶えておいてほしいこと by yoku0825
MySQL 8.0で憶えておいてほしいことMySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいこと
yoku082518.8K views
フロー技術によるネットワーク管理 by Motonori Shindo
フロー技術によるネットワーク管理フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
Motonori Shindo10.7K views
NVIDIA HPC ソフトウエア斜め読み by NVIDIA Japan
NVIDIA HPC ソフトウエア斜め読みNVIDIA HPC ソフトウエア斜め読み
NVIDIA HPC ソフトウエア斜め読み
NVIDIA Japan733 views
さいきんのMySQLに関する取り組み(仮) by Takanori Sejima
さいきんのMySQLに関する取り組み(仮)さいきんのMySQLに関する取り組み(仮)
さいきんのMySQLに関する取り組み(仮)
Takanori Sejima6.9K views
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで by Masahito Zembutsu
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までDocker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Masahito Zembutsu15.9K views
nftables: the Next Generation Firewall in Linux by Tomofumi Hayashi
nftables: the Next Generation Firewall in Linuxnftables: the Next Generation Firewall in Linux
nftables: the Next Generation Firewall in Linux
Tomofumi Hayashi9K views
ルーティングチュートリアル - AS間経路制御 by Shintaro Kojima
ルーティングチュートリアル - AS間経路制御ルーティングチュートリアル - AS間経路制御
ルーティングチュートリアル - AS間経路制御
Shintaro Kojima11.9K views
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone) by Kuniyasu Suzaki
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
Kuniyasu Suzaki7.2K views
AWSのログ管理ベストプラクティス by Akihiro Kuwano
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano77.2K views
MQTTとAMQPと.NET by terurou
MQTTとAMQPと.NETMQTTとAMQPと.NET
MQTTとAMQPと.NET
terurou39.8K views
忙しい人の5分で分かるDocker 2017年春Ver by Masahito Zembutsu
忙しい人の5分で分かるDocker 2017年春Ver忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver
Masahito Zembutsu29.3K views
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ... by NTT DATA Technology & Innovation
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
ロードバランスへの長い道 by Jun Kato
ロードバランスへの長い道ロードバランスへの長い道
ロードバランスへの長い道
Jun Kato13.6K views
MySQL 5.7にやられないためにおぼえておいてほしいこと by yoku0825
MySQL 5.7にやられないためにおぼえておいてほしいことMySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
yoku0825175.1K views
C/C++プログラマのための開発ツール by MITSUNARI Shigeo
C/C++プログラマのための開発ツールC/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
MITSUNARI Shigeo13.8K views
Redisの特徴と活用方法について by Yuji Otani
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani101.6K views
Azure仮想マシンと仮想ネットワーク by Kuninobu SaSaki
Azure仮想マシンと仮想ネットワークAzure仮想マシンと仮想ネットワーク
Azure仮想マシンと仮想ネットワーク
Kuninobu SaSaki20.7K views

Similar to Ansible入門.pptx

decode2016振り返り Azure IaaSなどインフラ系8セッションのポイントについて語ります! by
decode2016振り返り Azure IaaSなどインフラ系8セッションのポイントについて語ります!decode2016振り返り Azure IaaSなどインフラ系8セッションのポイントについて語ります!
decode2016振り返り Azure IaaSなどインフラ系8セッションのポイントについて語ります!wintechq
1.5K views21 slides
IT自動化ツール"Ansible"でIDCF Cloudを自動化する話 by
IT自動化ツール"Ansible"でIDCF Cloudを自動化する話IT自動化ツール"Ansible"でIDCF Cloudを自動化する話
IT自動化ツール"Ansible"でIDCF Cloudを自動化する話Hidetoshi Hirokawa
1.7K views21 slides
Ansible Module Topic by
Ansible Module Topic Ansible Module Topic
Ansible Module Topic Takeshi Kuramochi
1.5K views15 slides
自動化ツール Ansible に触れてみよう(技術インターン) by
 自動化ツール Ansible に触れてみよう(技術インターン) 自動化ツール Ansible に触れてみよう(技術インターン)
自動化ツール Ansible に触れてみよう(技術インターン)akira6592
1.1K views33 slides
KDDIにおけるAWS×アジャイル開発 by
KDDIにおけるAWS×アジャイル開発KDDIにおけるAWS×アジャイル開発
KDDIにおけるAWS×アジャイル開発Kazuya Suda
2.9K views31 slides
Ansible はじめてみました by
Ansible はじめてみましたAnsible はじめてみました
Ansible はじめてみましたTakeshi Kuramochi
2.7K views31 slides

Similar to Ansible入門.pptx(20)

decode2016振り返り Azure IaaSなどインフラ系8セッションのポイントについて語ります! by wintechq
decode2016振り返り Azure IaaSなどインフラ系8セッションのポイントについて語ります!decode2016振り返り Azure IaaSなどインフラ系8セッションのポイントについて語ります!
decode2016振り返り Azure IaaSなどインフラ系8セッションのポイントについて語ります!
wintechq1.5K views
IT自動化ツール"Ansible"でIDCF Cloudを自動化する話 by Hidetoshi Hirokawa
IT自動化ツール"Ansible"でIDCF Cloudを自動化する話IT自動化ツール"Ansible"でIDCF Cloudを自動化する話
IT自動化ツール"Ansible"でIDCF Cloudを自動化する話
Hidetoshi Hirokawa1.7K views
自動化ツール Ansible に触れてみよう(技術インターン) by akira6592
 自動化ツール Ansible に触れてみよう(技術インターン) 自動化ツール Ansible に触れてみよう(技術インターン)
自動化ツール Ansible に触れてみよう(技術インターン)
akira65921.1K views
KDDIにおけるAWS×アジャイル開発 by Kazuya Suda
KDDIにおけるAWS×アジャイル開発KDDIにおけるAWS×アジャイル開発
KDDIにおけるAWS×アジャイル開発
Kazuya Suda2.9K views
Aws summits2014 nttデータaws上のシステムはこう作る! by Boss4434
Aws summits2014 nttデータaws上のシステムはこう作る!Aws summits2014 nttデータaws上のシステムはこう作る!
Aws summits2014 nttデータaws上のシステムはこう作る!
Boss44341.2K views
IaaS型パブリッククラウド「IBM SoftLayer」とは by Kimihiko Kitase
IaaS型パブリッククラウド「IBM SoftLayer」とはIaaS型パブリッククラウド「IBM SoftLayer」とは
IaaS型パブリッククラウド「IBM SoftLayer」とは
Kimihiko Kitase2.8K views
20191129 AWS CloudFormarion by yamamotomsc
20191129 AWS CloudFormarion20191129 AWS CloudFormarion
20191129 AWS CloudFormarion
yamamotomsc15 views
Introduction to web development 1 by hideaki honda
Introduction to web development 1Introduction to web development 1
Introduction to web development 1
hideaki honda4.6K views
プライベートクラウドの動向とIT業へのインパクト(インタリオセミナー072409)最終版 by Tomoaki Sawada
プライベートクラウドの動向とIT業へのインパクト(インタリオセミナー072409)最終版プライベートクラウドの動向とIT業へのインパクト(インタリオセミナー072409)最終版
プライベートクラウドの動向とIT業へのインパクト(インタリオセミナー072409)最終版
Tomoaki Sawada2.1K views
OpenWhisk Serverless への期待 by Hideaki Tokida
OpenWhisk Serverless への期待OpenWhisk Serverless への期待
OpenWhisk Serverless への期待
Hideaki Tokida2K views
HTML5 クロスプラットフォームアプリ開発の現実解 by Monaca
HTML5 クロスプラットフォームアプリ開発の現実解HTML5 クロスプラットフォームアプリ開発の現実解
HTML5 クロスプラットフォームアプリ開発の現実解
Monaca3.9K views
【Interop Tokyo 2016】 エコシステムですすめる レノボのSDIソリューション by Juniper Networks (日本)
【Interop Tokyo 2016】 エコシステムですすめる レノボのSDIソリューション【Interop Tokyo 2016】 エコシステムですすめる レノボのSDIソリューション
【Interop Tokyo 2016】 エコシステムですすめる レノボのSDIソリューション
[AC02] Cloud Robotics Azure Platform って何だ!?~ IoT をもっと簡単に、Cloud AI の活用をもっと気軽にや... by de:code 2017
[AC02] Cloud Robotics Azure Platform って何だ!?~ IoT をもっと簡単に、Cloud AI の活用をもっと気軽にや...[AC02] Cloud Robotics Azure Platform って何だ!?~ IoT をもっと簡単に、Cloud AI の活用をもっと気軽にや...
[AC02] Cloud Robotics Azure Platform って何だ!?~ IoT をもっと簡単に、Cloud AI の活用をもっと気軽にや...
de:code 2017869 views
「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜 by Teruo Adachi
「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜
「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜
Teruo Adachi4K views
UnityとAmazon Web Servicesで生み出す新しい価値 by Keisuke Nishitani
UnityとAmazon Web Servicesで生み出す新しい価値UnityとAmazon Web Servicesで生み出す新しい価値
UnityとAmazon Web Servicesで生み出す新しい価値
Keisuke Nishitani3.2K views
2011年マイクロソフト テクノロジー振り返り~開発編~ by Takeshi Shinmura
2011年マイクロソフト テクノロジー振り返り~開発編~2011年マイクロソフト テクノロジー振り返り~開発編~
2011年マイクロソフト テクノロジー振り返り~開発編~
Takeshi Shinmura1.2K views

Ansible入門.pptx

  • 2. © 2023 IBM Corporation 2 © 2023 IBM Corporation What is Ansible? Ansibleは2012年にリリースされたインフラ自動化のソフトウェアです。 Ansible=構成管理ツールだったのですが、すごい進化しているため、 行為性管理もできる自動化ツールといったほうが正しい気がしています。 サーバやネットワーク、仮想環境だけでなく様々なミドルウェアやクラウド環境に対して、 構築や設定変更ができます。 Ansible offers open-source automation that is simple, flexible, and powerful. Simple Yaml形式で短く、 簡潔に自動化を定義 Powerful 様々なIT機器、 クラウド、 ミドルウェアに対応 Flexible エージェントレス!
  • 3. © 2023 IBM Corporation 3 © 2023 IBM Corporation What is IaC ? Infrastructure as Code インフラの構成や変更作業をコードで記述する。 ソフトウェア開発の進め方をインフラに適用していこうぜという考え方 ツールで自動化 バージョン管理 コードで管理 IaC適用前の課題... 運用手順書を見ながら同じ作業を手作業で実施。 何台ものサーバーで同じ作業を繰り返すため、どこかで設定ミスが発生してしまう。 パッチ適用など変更を行った情報をExcelで管理し、運用手順書を更新する。 ツールで自動化 バージョン管理 コードで管理
  • 4. © 2023 IBM Corporation 4 Ansible入門
  • 5. © 2023 IBM Corporation 5 © 2023 IBM Corporation Key Components Module Collection Inventory tgt1 10.0.1.22 tgt2 xx.xx.xx Playbook - Targets - Task - Handler Server Network Cloud Ansible RedHat社によってpythonで開発されたOSS ターゲット 今日ご紹介するAnsibleの基本要素です。Module/Inventory/Playbookの 3つを覚えてください。
  • 6. © 2023 IBM Corporation 6 ターゲット上で実行されるタスクの単位で、Ansibleが自動化できる内容がたくさん用意されている。 モジュール は「タスクプラグイン」または「ライブラリープラグイン」とも呼ばれる built-inモジュールと呼ばれる最初から入っているモジュールに加え、 追加で導入するモジュールはコレクションとしてまとめられている。 built-in モジュール郡 Module & Collection 自動化の部品 & 部品のセット 利用可能なモジュールの一覧 pingモジュールで 疎通確認する > ターゲット カテゴリー モジュール名 概要 コマンド系 shell shellを実行する ファイル操作系 file ファイル作成、リンク copy コピーする パッケージ管理系 yum パッケージ更新、インストール クラウド操作系 ec2 ec2の作成、停止、起動
  • 7. © 2023 IBM Corporation 7 Inventory Ansibleがターゲットとする対象を指定するファイルをinventoryと呼びます。 複数ホストを1つのグループにまとめたり、グループに対して変数を設定できたりする。 自動化する対象を指定する [grp1] tgt1 tgt2 [grp2] tgt3.example.com 10.0.11.121 [all:vars] ansible_user=root ansible_ssh_password=password [grp1:vars] myname=sagawa inv ファイル grp1って言われたら tgt1とtgt2を操作するんですね! 承知しました! $ ansible –i inv tgt1 –m ping –o
  • 8. © 2023 IBM Corporation 8 とりあえず試してみよう その1 Ad-Hoc コマンド Podman 環境 ssh Controller IaCではなくなってしまいますが、Playbookを書かずにコマンドで操作する方法をAd-Hocといいます。 ちょっとした検証に使う [ansible-handson]# ansible -i inv grp1 -m ping –o tgt2 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/libexec/platform-python"},"changed": false,"ping": "pong"} $ ansible -i inventory_name target_name –m module_name Target sshd
  • 9. © 2023 IBM Corporation 9 Playbook --- - name: first plyabook hosts: all become: yes tasks: - name: first task yum: name: httpd state: latest - name: start service: name: httpd state: started enabled: yes - name: copy new html copy: src: files/index.html dest: /var/www/html/ Playbook.yaml Playパート: ヘッダー部分 taskパート: 自動化の定義 - その1 任意のタスク名 使うモジュール モジュールへ渡す引数 - その2 - その3 YAML形式で記述し、ターゲットの望ましい状態を定義する
  • 10. © 2023 IBM Corporation 10 © 2023 IBM Corporation YAMLと 仲良しですか? 参加者の皆様はYAMLの読み書きできますか? Jsonとはマブダチだけど...実はYAMLはあまり好きじゃないという方向けにYAMLのおさらい。 YAMLはjsonの上位互換 (らしいです) ルール:インデントするときはTab使えない。配列は ハイフンで表す #可読性Good!コメント書ける! --- people: #コメント - name: saito age: 10 friend: true - name: sagawa age: 12 friend: false { "people": [ { "name": "saito", "age": 10, "friend": "yes" }, { "name": "sagawa", "age": 12, "friend": "no" } ] } vs
  • 11. © 2023 IBM Corporation 11 とりあえず試してみよう その2 Playbookの作成と実行 Podman 環境 Controller Target1 Target2 playbook --- - name: first plyabook hosts: all become: true tasks: - name: first task yum: name: httpd state: latest - name: start service: name: httpd state: started enabled: yes - name: copy new html copy: src: files/index.html dest: /var/www/html/ 1. httpdをインストールして、 2. startして、 3. htmlファイルをコピーする
  • 12. © 2023 IBM Corporation 12 とりあえず試してみよう その2 Playbookの作成と実行 冪等性 何度繰り返しても、同じ結果が得られる Playbookに従い処理を実行する前に、 本当に処理する必要があるかを確認しています。 httpdがインストールされているか? 指定のバージョンか? を確認した上で、異なる場合だけ処理を実行します。 そのため、同じplaybookを2回、3回と実行しても 結果は変わりません。 Podman 環境 Controller Target1 Target2 playbook
  • 13. © 2023 IBM Corporation 13 Ansible触ってみよう! https://killercoda.com/ansible/scenario/ansible-101 webでハンズオンができます! 日本語もあるのでおすすめ! お時間ある方はぜひ実施してください! 19時まで残っているので、QA受け付けます。