Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Ansistrano(&Ansible) への導入
Search
kashiwaguma-hiro
October 04, 2019
Programming
450
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Ansistrano(&Ansible) への導入
Ansistranoとはなにか
また、AnsistranoのベースとなるAnsibleとは何なのかを
ざっくりと紹介します
kashiwaguma-hiro
October 04, 2019
More Decks by kashiwaguma-hiro
See All by kashiwaguma-hiro
読んだ気になれる_オライリー本の攻略法
kashiwagumahiro
0
21
Terraformのざっくり入門
kashiwagumahiro
0
200
DMM.comの課金プラットフォームにおけるサーバーサイドKotlin事情
kashiwagumahiro
1
3.8k
Rundeckで 秘匿情報パラメータを セキュアに扱う
kashiwagumahiro
0
740
Other Decks in Programming
See All in Programming
海上で動くGoサーバー: goroutineとchannelでさばく航行データストリーム
atsuki_seo
0
940
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.2k
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
140
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
6
4.9k
SONY CISC-NEWS NWS-1750 + NWB-225 フレームバッファの NetBSD/news68k ドライバ実装 / OSC2026Hiroshima
tsutsui
0
150
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
190
AWSに止められる覚悟してますか?
morizo_1984
1
370
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
130
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
260
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
760
JRuby: Past, Present, and Future
headius
0
210
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
360
Featured
See All Featured
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
530
Deep Space Network (abreviated)
tonyrice
0
320
The Spectacular Lies of Maps
axbom
PRO
1
1k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
A Soul's Torment
seathinner
8
3.6k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
290
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
900
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
76k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
520
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
680
Transcript
Ansistrano(&Ansible) への導入 柏熊 宏幸
もくじ • Ansistranoとは • Ansibleとは • Ansibleの構成要素 • Ansistranoで出来ること •
まとめ
Ansistranoとは
Ansistranoとは • アプリケーションのデプロイを簡単に実現するための デプロイツール • Capistrano をAnsibleでポーティングしたもの • Ansistrano≒Ansible Role
◦ そもそもAnsibleって?
Ansibleとは
Ansibleとは • RedHat が開発するオープンソースの構成管理ツール • 構成管理ツール=サーバ・ソフトウェアのセットアップを補助す るツール • YAML形式、エージェントレス、SSHとPythonがあれば動作可 能
Ansibleの構成要素
例:NTPを設定する
None
①このサーバにインスコするぞ
②手順を用意して〜
$ sudo yum -y install ntp $ vi /etc/ntp.conf $
sudo service ntpd start ③コマンド実行や〜
これらをAnsibleの要素に 当てはめていくと…
①ansible:手順を実行する本体
②Inventory:どのサーバを対象? ①ansible:手順を実行する本体
②Inventory:どのサーバを対象? ③Playbook:構築手順 ①ansible:手順を実行する本体
$ sudo yum -y install ntp $ vi /etc/ntp.conf $
sudo service ntpd start ②Inventory:どのサーバを対象? ③Playbook:構築手順 ④Role:実際の操作 ①ansible:手順を実行する本体
Ansistranoとは(再掲) • アプリケーションのデプロイを簡単に実現するための デプロイツール • Capistrano をAnsibleでポーティングしたもの • Ansistrano≒Ansible Role
◦ そもそもAnsibleって?
②インベントリ:どのサーバを対象? ③Playbook:構築手順 ①ansible:手順を実行する本体 ④Role:実際の操作 $ sudo yum -y install ntp
$ vi /etc/ntp.conf $ sudo service ntpd start ココ!
Ansistranoで出来ること
Ansistranoで出来ること • デプロイの実現が簡単 • モジュールの取得手段が豊富 • カスタムRoleを差し込みできる
デプロイの実現が簡単
--- - name: Deploy hosts: all # すべてのホストを対象とする serial: 1
# タスクの同時実行数を1台とする any_errors_fatal: True # 1つでもエラーが起きた時点で失敗と判断し中断する roles: - { role: ansistrano.deploy } vars: # デプロイ先と世代管理の設定 ansistrano_deploy_from: "{{ playbook_dir }}" ansistrano_deploy_to: "/opt/api/" ansistrano_keep_releases: 3 # デプロイモジュールの取得方法 ansistrano_deploy_via: download ansistrano_get_url: "{{ download_url }}" # カスタマイズタスク設定 https://github.com/ansistrano/deploy#role-variables ansistrano_before_symlink_tasks_file: "{{ playbook_dir }}/roles/api/tasks/stop.yml" ansistrano_after_symlink_tasks_file: "{{ playbook_dir }}/roles/api/tasks/start.yml" 例:AnsistranoをつかったPlaybook 数十行を書くだけ
-- /opt/api/ |-- current -> /opt/api/releases/20100509145325/bin/api.jar |-- releases | |--
20100509145325/bin/api.jar |-- shared ①デプロイ前
-- /opt/api/ |-- current -> /opt/api/releases/20100509145325/bin/api.jar |-- releases | |--
20100509145325/bin/api.jar |-- shared -- /opt/api/ |-- current -> /opt/api/releases/20100509145325/bin/api.jar |-- releases | |-- 20100509150741/bin/api.jar | |-- 20100509145325/bin/api.jar |-- shared ①デプロイ前 ②ダウンロードと配置
-- /opt/api/ |-- current -> /opt/api/releases/20100509145325/bin/api.jar |-- releases | |--
20100509145325/bin/api.jar |-- shared -- /opt/api/ |-- current -> /opt/api/releases/20100509145325/bin/api.jar |-- releases | |-- 20100509150741/bin/api.jar | |-- 20100509145325/bin/api.jar |-- shared -- /opt/api/ |-- current -> /opt/api/releases/20100509150741/bin/api.jar |-- releases | |-- 20100509150741/bin/api.jar | |-- 20100509145325/bin/api.jar |-- shared ①デプロイ前 ②ダウンロードと配置 ③シンボリックリンクを最新バージョンへ差し替え
モジュールの取得手段が豊富
--- - name: Deploy hosts: all # すべてのホストを対象とする serial: 1
# タスクの同時実行数を1台とする any_errors_fatal: True # 1つでもエラーが起きた時点で失敗と判断し中断する roles: - { role: ansistrano.deploy } vars: # デプロイ先と世代管理の設定 ansistrano_deploy_from: "{{ playbook_dir }}" ansistrano_deploy_to: "/opt/api/bin/" ansistrano_keep_releases: 3 # デプロイモジュールの取得方法 ansistrano_deploy_via: download ansistrano_get_url: "{{ download_url }}" # カスタマイズタスク設定 https://github.com/ansistrano/deploy#role-variables ansistrano_before_symlink_tasks_file: "{{ playbook_dir }}/roles/api/tasks/stop.yml" ansistrano_after_symlink_tasks_file: "{{ playbook_dir }}/roles/api/tasks/start.yml" 例:AnsistranoをつかったPlaybook(再掲) この辺
デプロイパターンが豊富 • 用意されている方法は7種類 ◦ download ◦ rsync ◦ git ◦
svn ◦ hg ◦ s3 ◦ gcs • ほぼやりたいパターンを網羅できるのでは?
カスタムRoleを差し込みできる
-- /opt/api/ |-- current -> /opt/api/releases/20100509145325/bin/api.jar |-- releases | |--
20100509145325/bin/api.jar |-- shared -- /opt/api/ |-- current -> /opt/api/releases/20100509145325/bin/api.jar |-- releases | |-- 20100509150741/bin/api.jar | |-- 20100509145325/bin/api.jar |-- shared -- /opt/api/ |-- current -> /opt/api/releases/20100509150741/bin/api.jar |-- releases | |-- 20100509150741/bin/api.jar | |-- 20100509145325/bin/api.jar |-- shared ①デプロイ前 ②ダウンロードと配置 ③シンボリックリンクを最新バージョンへ差し替え 切り替え前後で、 APIの停止・起動したいよね?
--- - name: Deploy hosts: all # すべてのホストを対象とする serial: 1
# タスクの同時実行数を1台とする any_errors_fatal: True # 1つでもエラーが起きた時点で失敗と判断し中断する roles: - { role: ansistrano.deploy } vars: # デプロイ先と世代管理の設定 ansistrano_deploy_from: "{{ playbook_dir }}" ansistrano_deploy_to: "/opt/api/bin/" ansistrano_keep_releases: 3 # デプロイモジュールの取得方法 ansistrano_deploy_via: download ansistrano_get_url: "{{ download_url }}" # カスタマイズタスク設定 https://github.com/ansistrano/deploy#role-variables ansistrano_before_symlink_tasks_file: "{{ playbook_dir }}/roles/api/tasks/stop.yml" ansistrano_after_symlink_tasks_file: "{{ playbook_dir }}/roles/api/tasks/start.yml" 例:AnsistranoをつかったPlaybook(再掲) 変数で差し込むRoleを 指定できる!
他にもこんな差し込みポイントがあります 詳細:https://github.com/ansistrano/deploy
他にも色んな機能があるので、 動かしてやってみよう! コード(github) 公式サイト(html)
まとめ • AnsistranoはAnsibleのRoleの一つ • symlinkを使ったデプロイとカスタマイズが 簡単に実現できる • Ansibleの仕組みで動作するため、Ansible知識がある程度必 要になる
おわり