SlideShare a Scribd company logo
TripleO Deep Dive 1.1
Takashi Kajinami
Software Maintenance Engineer
OpenStack Days Tokyo 2019
はじめに
Tripleo Deep Dive: はじめに
● この資料は、Cloud Native Days Tokyo 2019 / OpenStack Days Tokyo 2019での発表資
料の修正・更新版です
○ https://cloudnativedays.jp/cndt2019/
2
自己紹介
Tripleo Deep Dive
● 梶波 崇 (Takashi Kajinami)
○ https://launchpad.net/~kajinamit
○ https://github.com/kajinamit/
● Software Maintenance Engineer at Red Hat K.K.
○ OpenStack/NFVのサポート
● OpenStackは7年+
○ Storlets Core reviewer (現)
https://wiki.openstack.org/wiki/Storlets
○ Masakari Core reviewer (元)
https://wiki.openstack.org/wiki/Masakari
○ 最近はもっぱらTripleO
3
Agenda
Tripleo Deep Dive
● 今日話すこと
○ TripleOとは?
○ TripleOのアーキテクチャ
○ THT(tripleo-heat-templates)詳解
○ TripleOの使い方
● 今日話さないこと
○ Update, Upgrade
○ RHOSPでのサポート有無
● 注意してほしいこと
○ 本資料はQueensリリースをベースに作成しています
○ バージョンによっては記載内容と異なる場合があります
4

Recommended for you

containerdの概要と最近の機能
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能

Container Runtime Meetup #3の発表資料です。 高レベルコンテナランタイムcontainerdの概要を紹介しています。 https://runtime.connpass.com/event/198071/

dockerkubernetescontainerd
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...

talked by builderscon tokyo 2019 https://builderscon.io/tokyo/2019/session/18e6c5d7-9bb9-435f-b76d-86ba579b84df

builderscondiskless-hypervisor
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月

知っているようで知らないNeutron -仮想ルータの冗長と分散- 講師:工藤 雄大 (株式会社日立ソリューションズ) アジェンダ: Neutronの仮想ルータについて - むかしばなし (サーバ仮想化時代のNW) - Neutronの役割 - Neutronの課題 - 解決方法 --- L3 HA --- DVR --- MidoNet(おまけ)

openstackneutronopenstack update seminar
TripleOとは?
TripleO Deep Dive
5
OpenStackとは?
Tripleo Deep Dive: TripleOとは?
● 「クラウド(IaaS)を構築するためのOSS」
● 仮想マシン、ネットワーク、ストレージを APIにより管理する機能を提供
○ 基本的にスコープはコントロールプレーンのみ
○ リソース実体はKVM, ovsなどの既存ソフトウェアを利用
● 複数のプロジェクトから構成
○ Nova : 仮想マシン管理
○ Cinder : ストレージ管理
○ Neutron : ネットワーク管理
参考: https://www.openstack.org/
6
TripleOとは?
Tripleo Deep Dive: TripleOとは?
● TripleO = OpenStack On OpenStack
● OpenStackを使ってOpenStackをインストールするプロジェクト
○ HPが中心となりプロジェクトを立ち上げ、開発
○ Red Hat OpenStack Platformでもインストーラとして利用
● 複数リポジトリにより構成される
○ python-tripleoclient : デプロイ操作用のCLIツール(openstackコマンドに統合)
○ tripleo-common : ライブラリ、Template等
○ tripleo-heat-templates : デプ���イ構成を規定するHeatテンプレート
○ puppet-tripleo : 設定時のエントリーポイントとなるpuppet manifest
参考: https://wiki.openstack.org/wiki/TripleO
7
TripleOの歩み
Tripleo Deep Dive: TripleOとは?
8
Juno Kilo Liberty Mitaka Newton Ocata Pike Queens Rocky SteinIcehouse
Icehouse
Incubation Project化
Juno
VIP対応
Kilo
cinder-volume Act/Sby
Liberty
Release branch導入
Mitaka
Mistral導入
TripleO UI追加
Newton
Composable Role導入
Ironic、OVS-DPDK、SR-IOV対応
Ocata
DB/MQのComposable Role対応
Octavia、OVN対応
Pike
Overcloudのコンテナ化(一部)
Keystone v2の廃止
Queens
Overcloudのコンテナ化
Spine-leaf対応
Rocky
Undercloudのコンテナ化
デプロイ処理のAnsible化
Train
Stein
Podman対応
OVNのデフォルト化

Recommended for you

KubernetesバックアップツールVeleroとちょっとした苦労話
KubernetesバックアップツールVeleroとちょっとした苦労話KubernetesバックアップツールVeleroとちょっとした苦労話
KubernetesバックアップツールVeleroとちょっとした苦労話

Cloud Native Days Online 2021で発表した際に使った資料です。 尺の都合上カットしたスライドも含んでいるため、実際に話した際に使ったスライドよりも多いです。

velero
OpenStackトラブルシューティング入門
OpenStackトラブルシューティング入門OpenStackトラブルシューティング入門
OpenStackトラブルシューティング入門

1. 検証環境の構築 --- Nested Virtualization 2. 動作確認の方法 --- コマンドによる監視 3. トラブルシューティング --- 障害と解決例

openstackトラブルシューティングtrouble shooting
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)

アジェンダ: ーOpenStackの概要 ーHorizonへのアクセス ーインスタンスにディスクを追加 ー仮想マシンイメージの登録 ーイメージの登録手順 ーSSH認証鍵の作成と登録 ーインスタンスの起動 ーファイアウォールの設定 ーインスタンスにアクセス ーFloating IP

dashboardhorizonopenstack
TripleOのアーキテクチャ
TripleO Deep Dive
9
Undercloud
Overcloud
TripleOのアーキテクチャ
Tripleo Deep Dive: TripleOのアーキテクチャ
● TripleOで構築したOpenStackは、2層のOpenStackより構成される
○ Undercloud: インストーラが動作するベアメタルクラウド
○ Overcloud : Undercloud上のベアメタルインスタンスで構成された OpenStack
Controller
Baremetal
Compute
Baremetal
Compute
Baremetal
Compute
VMVM
Server Server Server Server
Controller Compute Storage
10
TripleOが利用する既存コンポーネント
Tripleo Deep Dive: TripleOのアーキテクチャ
11
コンポーネント名 用途
Heat テンプレートに従ったリソース (インスタンス等)の生成
インスタンス上のソフトウェア設定
Ironic ベアメタルインスタンスの生成
Swift Overcloud構成データ等の保管
Mistral ワークフローの実行
Kolla コンテナイメージのビルド
● TripleOは、既存コンポーネントを活用してデプロイ処理を実現する
○ TripleOのスコープは、構成・ワークフローの定義やツール群まで
一番重要!
OpenStack Heat
Tripleo Deep Dive: TripleOのアーキテクチャ
● OpenStackにおけるOrchestration機能を提供するコンポーネント
● 仮想マシン・ネットワーク等の OpenStackのリソースだけでなく、 仮想マシン上の設定な ど
も管理できる
○ OS::Heat::SoftwareConfig
■ サーバ上で実行する処理 (ansible playbook等)を規定するリソース
○ OS::Heat::SoftwareDeployment
■ SoftwareConfigと実行するノード、パラメタを関連付けるリソース
● TripleOでは、このSoftwareConfig/Deploymentの機能をフル活用して Overcloudの各
種設定を適用する
参考: https://wiki.openstack.org/wiki/Heat
12

Recommended for you

Red Hat OpenShift Container Storage
Red Hat OpenShift Container StorageRed Hat OpenShift Container Storage
Red Hat OpenShift Container Storage

Red Hat OpenShift Container Platform で利用できるストレージである、Red Hat OpenShift Container Storage の紹介資料です。

openshiftredhatstorage
【OpenStack共同検証ラボ】OpenStack監視・ログ分析基盤の作り方 - OpenStack最新情報セミナー(2016年7月)
【OpenStack共同検証ラボ】OpenStack監視・ログ分析基盤の作り方 - OpenStack最新情報セミナー(2016年7月)【OpenStack共同検証ラボ】OpenStack監視・ログ分析基盤の作り方 - OpenStack最新情報セミナー(2016年7月)
【OpenStack共同検証ラボ】OpenStack監視・ログ分析基盤の作り方 - OpenStack最新情報セミナー(2016年7月)

【OpenStack共同検証ラボ】OpenStack監視・ログ分析基盤の作り方 講師:畠泰三(NECネッツエスアイ) アジェンダ: - はじめに - ログ管理 - OpenStack監視 - まとめ

monitoringopenstack update seminarlog management
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)

Knative Eventing 入門 (Kubernetes Novice Tokyo #11 発表資料) 2021年6月22日 NTTデータ 北村 卓也

kubernetesnttdatanttデータ
デプロイ処理の流れ(1) デプロイ準備
Tripleo Deep Dive: TripleOのアーキテクチャ
13
Undercloud
Overcloud
Controller
Server Server
Swift Heat Ironic
Nova
Neutron
openstack cli
template
Templateを用意して
$ openstack overcloud deploy …
デプロイ処理の流れ(2) planの作成
Tripleo Deep Dive: TripleOのアーキテクチャ
14
Undercloud
Overcloud
Controller
Server Server
Swift Heat Ironic
Nova
Neutron
openstack cli
template
plan
openstack cli内でtemplateからplanを
作成してswiftに格納
デプロイ処理の流れ(3) overcloudスタックの作成
Tripleo Deep Dive: TripleOのアーキテクチャ
15
Undercloud
Overcloud
Controller
Server Server
Swift Heat Ironic
Nova
Neutron
openstack cli
template
plan
openstack cliがHeatにスタックの作成
をリクエスト
overcloud
デプロイ処理の流れ(4) OSインストール
Tripleo Deep Dive: TripleOのアーキテクチャ
16
Undercloud
Overcloud
Controller
Server Server
Swift Heat Ironic
Nova
Neutron
openstack cli
template
plan
OS
overcloud
HeatがIronic/Nova/Neutronを使ってベ
アメタルインスタンスをデプロイ

Recommended for you

VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker  ~ VirtualBox でも STONITH 機能が試せる! Vi...VirtualBox と Rocky Linux 8 で始める Pacemaker  ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...

OSC2022 Online/Fall でのセミナー資料です。 Pacemaker のSTONITH機能が動作する検証環境を、Windows上のVirtualBox仮想環境で構築するノウハウを紹介しています。 https://event.ospn.jp/osc2022-online-fall/session/681272

linuxlinuxhapacemaker
TIME_WAITに関する話
TIME_WAITに関する話TIME_WAITに関する話
TIME_WAITに関する話

TIME_WAIT のお話です。

linuxtcp
ロードバランスへの長い道
ロードバランスへの長い道ロードバランスへの長い道
ロードバランスへの長い道

インターネットやIPネットワークにおける複数経路の選択アルゴリズム

デプロイ処理の流れ(5) ネットワーク設定
Tripleo Deep Dive: TripleOのアーキテクチャ
17
Undercloud
Overcloud
Controller
Server Server
Swift Heat Ironic
Nova
Neutron
openstack cli
template
plan
OS
nic設定os-net-config
os-collect-config
overcloud
SoftwareConfig/Deploymentリソースを
使ってnic設定スクリプトを実行
デプロイ処理の流れ(6) ホスト・サービス設定
Tripleo Deep Dive: TripleOのアーキテクチャ
18
Undercloud
Overcloud
Controller
Server Server
Swift Heat Ironic
Nova
Neutron
openstack cli
template
plan
OS
nic設定
ホスト設定
サービス設定
os-net-config
os-collect-config
puppet
ansible
overcloud
SoftwareConfig/Deploymentリソースを
使いansibleを実行。ansibleからpuppet
などを呼び出し設定適用
デプロイ処理の流れ(7) コンテナの設定(Pike以降)
Tripleo Deep Dive: TripleOのアーキテクチャ
19
Undercloud
Overcloud
Controller
Server Server
Swift Heat Ironic
Nova
Neutron
openstack cli
template
plan
OS
nic設定
ホスト設定
コンテナ設定
os-net-config
puppet
サービス設定
os-collect-config
ansible
paunch
puppet
overcloud
Pike以降ではansible内でコンテナの設
定も実行。
コンテナ設定はpaunchで管理
デプロイ処理のAnsible化 (Rocky以降)
Tripleo Deep Dive: TripleOのアーキテクチャ
20
Undercloud
Overcloud
Controller
Server Server
Swift Heat Mistral
openstack cli
template
plan
OS
nic設定
ホスト設定
コンテナ設定
os-net-config
puppet
サービス設定
ansible
paunch
puppet
overcloud ansible
ソフトウェア設定をHeatからAnsibleに
切り出し。
MistralがPlaybookの実行を管理
参考: https://docs.openstack.org/tripleo-docs/latest/install/advanced_deployment/ansible_config_download.html

Recommended for you

PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021

Preferred Networks(PFN)は深層学習などの最先端の技術を最短路で実用化することで、これまで解決が困難であった現実世界の課題解決を目指しています。コンピュータビジョン、自然言語処理、音声認識、ロボティクス、コンパイラ、分散処理、専用ハードウェア、バイオインフォマティクス、ケモインフォマティクスといった幅広い分野で研究開発を行っており、それを支えているのが Kubernetes を用いて構築しているオンプレミス/ベアメタルの GPU クラスタです。 本セッションでは、PFN が Kubernetes を用いてクラスタを運用するなかでどのような障害が起きるのかを紹介し、また障害対応をどのように自動化しているのかを具体的に使用/開発したソフトウェアを含めてご紹介します。また Kubernetes クラスタの管理、アップグレードの自動化にも取り組んでおり、それを実現する Cluster API についてもご紹介します。 https://confengine.com/conferences/devopsdays-tokyo-2021/proposal/15203/pfn-mldl-kubernetes

kubernetesprometheusdevops
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方

iostat の await と svctm の 見かた、考え方を書いたやで彡(゚)(゚)

unixlinuxiostat
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較

Container Runtime Meetup #3 発表資料 (2021/1/28) https://runtime.connpass.com/event/198071/

dockerpodmancontainers
THT詳解
TripleO Deep Dive
21
THT(tripleo-heat-templates)とは?
Tripleo Deep Dive: THT詳解
● Overcloudの構成を定義するHeatテンプレートコレクション (yamlの集合体)
○ サーバの構成
○ ネットワークの構成
○ サーバ上のソフトウェアの構成
● 一部yamlは、Jinja2によりRole情報・Network情報等から自動生成
○ foo.yaml : yamlファイル
○ foo.j2.yaml, foo.j2 : jinja2 templateファイル
● THTのデフォルトtemplate + 環境に合わせてカスタマイズした個別 templateを組み合わ
せてOvercloudを構築する
参考: https://github.com/openstack/tripleo-heat-templates
22
(undercloud)$ openstack overcloud deploy --templates -e /home/stack/templates/storage-environment.yaml 
-e /home/stack/templates/network-environment.yaml ...
Q. jinja2って何? A. こんな奴
Tripleo Deep Dive: THT詳解
23
{%- set primary_role = [roles[0]] -%}
{%- for role in roles -%}
{%- if 'primary' in role.tags and 'controller' in role.tags -%}
{%- set _ = primary_role.pop() -%}
{%- set _ = primary_role.append(role) -%}
{%- endif -%}
{%- endfor -%}
{%- set primary_role_name = primary_role[0].name -%}
...
resource_registry:
# networks as defined in network_data.yaml
{%- for network in networks if network.enabled|default(true) %}
OS::TripleO::Network::{{network.name}}: ../network/{{network.name_lower|default(network.name.lower())}}.yaml
{%- endfor %}
# Port assignments for the VIPs
{%- for network in networks if network.vip and network.enabled|default(true) %}
OS::TripleO::Network::Ports::{{network.name}}VipPort:
../network/ports/{{network.name_lower|default(network.name.lower())}}.yaml
{%- endfor %}
OS::TripleO::Network::Ports::RedisVipPort: ../network/ports/vip.yaml
...
参考: http://jinja.pocoo.org/
THTの中身
Tripleo Deep Dive: THT詳解
$ ls /usr/share/openstack-tripleo-heat-templates/
docker
environments
extraconfig
firstboot
network
network_data.yaml
overcloud.j2.yaml
overcloud-resource-registry-puppet.j2.yaml
puppet
roles
roles_data.yaml
24
個別templateサンプル
Docker設定
Network定義
Puppet設定
Role定義
stack作成時のentrypoint
注. 簡単のため、一部のディレクトリ・ファイルを省略
注. Rocky以降でリファクタされた (docker, puppet -> deployment)

Recommended for you

Prometheus at Preferred Networks
Prometheus at Preferred NetworksPrometheus at Preferred Networks
Prometheus at Preferred Networks

Prometheus Tokyo Meetup #2 PFN荒井良太の講演資料を公開します。 Preferred Networks (PFN)ではオンプレミスのKubernetesクラスタで機械学習基盤を構築しており、そのモニタリングにPrometheusを利用しています。PFNでのPrometheusの利用事例、Thanosを利用したスケーラブルなPrometheusのデプロイなどをご紹介しています。 https://prometheus.connpass.com/event/127574/

prometheusthanosmonitoring
ONIC-Japan-2019-OVN public
ONIC-Japan-2019-OVN publicONIC-Japan-2019-OVN public
ONIC-Japan-2019-OVN public

ONIC Japan 2019での発表資料です

ovsovnopenstack
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな!  PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとはコンテナを止めるな!  PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは

OSC2018 Tokyo/Fall でのセミナー資料です。 コンテナを「止めない」技術である Pacemaker bundle 機能と Kubernetes との違いについて紹介します。 https://www.ospn.jp/osc2018-fall/modules/eguide/event.php?eid=21

pacemakerlinux-hakubernetes
Role定義(roles_data.yaml)
Tripleo Deep Dive: THT詳解
● Role = 各サーバの役割
○ Controller, Compute, ...
● Role毎に必要リソース・パラメタを定義
○ 接続するネットワーク
○ 起動するサービス
○ ホスト名フォーマット
● 物理サーバと物理サーバ上にデプロイする Roleは、
NovaのFlavorとIronicのcapabilitiesを利用して固定
25
- name: Controller
...
networks:
- External
- InternalApi
- Storage
- StorageMgmt
- Tenant
...
default_route_networks: ['External']
HostnameFormatDefault: '%stackname%-controller-%index%'
...
update_serial: 1
ServicesDefault:
…
- OS::TripleO::Services::NovaApi
- OS::TripleO::Services::NovaConductor
- OS::TripleO::Services::NovaConsoleauth
- OS::TripleO::Services::NovaIronic
- OS::TripleO::Services::NovaMetadata
- OS::TripleO::Services::NovaPlacement
- OS::TripleO::Services::NovaScheduler
- OS::TripleO::Services::NovaVncProxy
- OS::TripleO::Services::Ntp
...
(undercloud)$ openstack flavor create --id auto … networker
(undercloud)$ openstack flavor set ... --property "capabilities:profile"="networker" networker
(undercloud)$ openstack baremetal node set --property capabilities='profile:networker,boot_option:local' ...
roles_data.yamlより抜粋
Network定義(network_data.yaml)
Tripleo Deep Dive: THT詳解
● Overcloudが接続するL2ネットワークの定義
○ IPサブネット, VLANタグ, ...
● 通信用途毎にネットワークを分離できる
○ 標準で定義されるネットワークは右表を参照
● 構成に合わせた追加や無効化が可能
○ Storageネットワークの分割(iSCSI multipath)
○ Stonith実行用のIPMIネットワークの追加
○ StorageManagementの無効化
26
- name: InternalApi
name_lower: internal_api
vip: true
vlan: 20
ip_subnet: '172.16.2.0/24'
allocation_pools: [{'start': '172.16.2.4', 'end': '172.16.2.250'}]
ipv6_subnet: 'fd00:fd00:fd00:2000::/64'
ipv6_allocation_pools: [{...}]
- name: External
...
名前 用途
InternalAPI Internal/Admin Endpoint *1, 内部通信
Tenant 仮想マシン通信
External Public Endpoint, Floating IP
Storage ストレージIO
StorageManagement ストレージ同期通信 (Swift, Ceph)
Management *2 管理作業
ControlPlane *3 TripleOによるデプロイメント・操作
*1 Keystoneのみadmin endpointはデフォルトで ControlPlaneを利用
*2 Managementネットワークは Optional
*3 ControlPlaneはUndercloudインストール時に設定し、 network_data.yamlには
記載しないが、簡単のため記載
network_data.yamlより抜粋
標準で定義されるネットワーク一覧
THTにおけるNetwork設定方法
Tripleo Deep Dive: THT詳解
● THTでは、Network情報がデフォルトで定義される
● 一方で具体的なNetwork設定のためのリソースはデフォルトで無効化されている
○ 作成がSkipされるOS::Heat::Noneリソースが割り当てられている
 ⇨ Network関連リソースを定義する templateを別途作成/指定する必要がある
1. OS::TripleO::Network
2. OS::TripleO::[ROLE]::Net::SoftwareConfig
27
OS::TripleO::Network
Tripleo Deep Dive: THT詳解: THTにおけるNetwork設定方法(1)
● Overcloudのネットワーク関連リソース (Neutronのリソースに相当)
○ OS::TripleO::Network::[NETWORK]Api
⇨Network + Subnet
○ OS::TripleO::Network::Ports::[NETWORK]Api
⇨Port (サーバIP用)
○ OS::TripleO::Network::Ports::[NETWORK]VipPort
⇨Port (VIP用)
● THTリポジトリにおいて、 jinja2を使ったtemplateサンプルが提供されている
○ environments/network-isolation.j2.yaml
⇨Neutronリソース定義
○ environments/network-environment.j2.yaml
⇨単一NICを利用する場合のパラメタ定義+NIC構成定義(後述)
28

Recommended for you

osc_tokyo20100226
osc_tokyo20100226osc_tokyo20100226
osc_tokyo20100226

オープンソースカンファレンス 2010 Tokyo/spring での発表

20131019 OSC@Tokyo CloudStackユーザー会
20131019 OSC@Tokyo CloudStackユーザー会20131019 OSC@Tokyo CloudStackユーザー会
20131019 OSC@Tokyo CloudStackユーザー会

使ってみようCloudStack4.2

OCaml でデータ分析
OCaml でデータ分析OCaml でデータ分析
OCaml でデータ分析

OCaml + Jupyter + Docker でデータ分析環境を構築した話です。

ocamldockerjupyter
OS::TripleO::[NETWORK]::Net::SoftwareConfig
Tripleo Deep Dive: THT詳解: THTにおけるNetwork設定方法(2)
● サーバ上のインタフェース設定用のリソース
○ サブネット*1, route
○ VLAN
○ ovs/Linux bond
○ ovs/Linux bridge
○ DNS
● デフォルト無効のため、サーバのインタフェース構成に合わせ
てtemplateを準備する必要がある
● インタフェース設定は、 os-net-configによって実行*2
○ 構成情報はOvercloudノードの/etc/os-net-config.jsonに保管
○ 適用の様子は下記コマンド等で確認可能
29
resources:
OsNetConfigImpl:
type: OS::Heat::SoftwareConfig
properties:
group: script
config:
str_replace:
template:
get_file: ../../scripts/run-os-net-config.sh
params:
$network_config:
network_config:
- type: ovs_bridge
name: br-ex
use_dhcp: false
...
members:
- type: interface
name: nic1
primary: true
- type: vlan
vlan_id:
get_param: InternalApiNetworkVlanID
addresses:
- ip_netmask:
get_param: InternalApiIpSubnet
$ sudo os-net-config --noop -v -c /etc/os-net-config/config.json
*1 各Networkのサブネットを指定することで、 Network内に作成した PortのIPが自動で選択される
*2 Overcloudの各インタフェースの IP設定は、ノード初期インストール時の ControlPlaneでのIP割当
を除き、NeutronのDHCP機能を利用しない
template記載例
Puppet設定(puppet/services/*.yaml)
Tripleo Deep Dive: THT詳解
● 設定ファイル生成のための Puppet実行パラメタ等を定義した template
○ config_settings : Hieradata
○ step_config : 有効化するモジュール
30
outputs:
role_data:
value:
service_name: keystone
config_settings:
map_merge:
- get_attr: [ApacheServiceBase, role_data, config_settings]
- keystone::database_connection:
….
keystone::admin_token: {get_param: AdminToken}
keystone::admin_password: {get_param: AdminPassword}
keystone::roles::admin::password: {get_param: AdminPassword}
keystone::policy::policies: {get_param: KeystonePolicies}
…
step_config: |
include ::tripleo::profile::base::keystone
puppet/services/keystone.yaml より抜粋
(tripleo-heat-templates)
class keystone::roles::admin(
$password,
$email = 'admin@localhost',
$admin = 'admin',
$admin_tenant = 'openstack',
...
) {
...
manifests/roles/admin.pp より抜粋
(puppet-keystone)
manifests/profile/base/keystone.pp より抜粋
(puppet-tripleo)
class tripleo::profile::base::keystone (
…
) {
include ::keystone::config
...
class { '::keystone::roles::admin':
admin_roles => $admin_roles,
}
….
Docker設定(docker/services/*.yaml)
Tripleo Deep Dive: THT詳解
● Dockerコンテナの起動パラメータを定
義したtemplate
○ コマンド
○ マウント
○ ネットワーク
● おおよそのコンテナでは kolla_startか
らサービスを起動
  →kolla_startに合わせた形式で
   データが定義される
31
outputs:
role_data:
description: Role data for the Nova API role.
value:
...
kolla_config:
/var/lib/kolla/config_files/nova_api.json:
command: /usr/sbin/httpd -DFOREGROUND
config_files:
- source: "/var/lib/kolla/config_files/src/*"
dest: "/"
merge: true
preserve_properties: true
...
step_4:
nova_api:
start_order: 2
image: *nova_api_image
net: host
user: root
privileged: true
restart: always
healthcheck:
test: /openstack/healthcheck
volumes:
list_concat:
- {get_attr: [ContainersCommon, volumes]}
- {get_attr: [NovaApiLogging, volumes]}
-
- /var/lib/kolla/config_files/nova_api.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/puppet-generated/nova/:/var/lib/kolla/config_files/src:ro
...
docker/services/nova-api.yamlより抜粋
Deployment Stepとは?
Tripleo Deep Dive: THT詳解
● ソフトウェア設定には依存関係がある
一般的なOpenStackのインストール手順
1. OS設定
2. ミドルウェア(DB、MQ)設定・起動・ユーザ作成
3. Keystone設定・起動・ユーザ作成
4. 各サービス(Nova, Neutron, ...)起動
● この依存関係を解決するのが Deployment Step
○ 実体は依存関係が設定された Heatのリソース群
● THT, puppet-tripleoにて、Step毎に必要な処理を定義する
○ Step1 ~ Step 5が存在
32

Recommended for you

PTLのお仕事とリリースパイプラインの裏側
PTLのお仕事とリリースパイプラインの裏側PTLのお仕事とリリースパイプラインの裏側
PTLのお仕事とリリースパイプラインの裏側

OpenStack Days Tokyo 2019 の発表資料

openstackrelease pipelinezuul
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて
hq445hbstudygentoo
20181228 ncf to_azure_batch
20181228 ncf to_azure_batch20181228 ncf to_azure_batch
20181228 ncf to_azure_batch

Xit おすすめ番組の改善

Deployment Stepの概要
Tripleo Deep Dive: THT詳解
33
リソース名 設定内容
HostPrepTask ntp設定、NFS設定など
Deployment Step1 Haproxy設定
Step2 Middleware(DB, RabbitMQ)設定
Step3 DBスキーマ投入、Keystone設定・起動
Step4 OpenStackサービス設定・起動
Step5 Pacemaker設定+サービス起動後の初期設定
*1 . Octavia有効化時等は Mistralによって実行される WorkflowTaskStepNが追加で利用される。
TripleOの使い方
TripleO Deep Dive
34
TripleOによるデプロイ作業
Tripleo Deep Dive: TripleOの使い方
⇨詳細はこちら! https://docs.openstack.org/tripleo-docs/latest/install/
35
# python-tripleoclientをインストール
$ sudo yum install -y python-tripleoclient
# Undercloudをインストール
$ openstack undercloud install
# Overcloudデプロイ用のディスクイメージを登録
$ openstack overcloud image upload --image-path /home/stack/images/
# ベアメタルノードを登録
$ openstack overcloud node import instackenv.json
# ベアメタルノードのスペックを収集
$ openstack overcloud node introspect --all-manageable --provide
# Overcloudをデプロイ
$ openstack overcloud deploy --templates -e /home/stack/templates/node-info.yaml
-e /home/stack/templates/overcloud_images.yaml 
…
# 完成!
読み込み順序に注意!
(後のもので上書き)
TripleOを使ったカスタマイズ
Tripleo Deep Dive: TripleOの使い方
● 構成・設定をカスタマイズするための機構
1. TripleOのtemplate生成用パラメタを使うもの
a. Role定義
b. Network定義
2. Heatのtemplateカスタマイズ機能を使うもの
a. リソース定義
b. パラメタ定義
3. カスタマイズ用の特殊なリソースを使うもの
a. ExtraConfig
● 1は説明済みなので2, 3を説明
36

Recommended for you

使ってみよう CloudStack
使ってみよう CloudStack 使ってみよう CloudStack
使ってみよう CloudStack

20130914 OSC@北海道 日本CloudStackユーザ会

Taming Distributed/Parallel Query Execution Engine of Apache Spark
Taming Distributed/Parallel Query Execution Engine of Apache SparkTaming Distributed/Parallel Query Execution Engine of Apache Spark
Taming Distributed/Parallel Query Execution Engine of Apache Spark

Repro Tech#9: 実践・並列分散処理基盤

sparkdatabase
Cloud OS「Apache CloudStack」をお手軽に使ってみる方法
Cloud OS「Apache CloudStack」をお手軽に使ってみる方法Cloud OS「Apache CloudStack」をお手軽に使ってみる方法
Cloud OS「Apache CloudStack」をお手軽に使ってみる方法

2013年11月16日 OSC福岡(日本CloudStackユーザー会)

リソース定義によるカスタマイズ
Tripleo Deep Dive: TripleOの使い方: TripleOを使ったカスタマイズ
● Roleに紐づくリソース一覧に対象が含まれる場合は、リソースに対する templateパスを
定義した個別templateを作成すればOK
○ リソースを有効化する場合はリソースを定義する templateのパスを指定
○ リソースを無効化する場合は OS::Heat::None を指定
● Role定義に必要なリソースが定義されていない場合は、カスタム Roleの作成が必要
37
resource_registry:
OS::TripleO::Services::IronicApi: ../../docker/services/ironic-api.yaml
OS::TripleO::Services::IronicConductor: ../../docker/services/ironic-conductor.yaml
OS::TripleO::Services::IronicPxe: ../../docker/services/ironic-pxe.yaml
OS::TripleO::Services::NovaIronic: ../../docker/services/nova-ironic.yaml
...
resource_registry:
OS::TripleO::Services::CeilometerAgentCentral: OS::Heat::None
OS::TripleO::Services::CeilometerAgentNotification: OS::Heat::None
OS::TripleO::Services::CeilometerAgentIpmi: OS::Heat::None
OS::TripleO::Services::ComputeCeilometerAgent: OS::Heat::None
...
リソース有効化の例environments/services/ironic.yaml リソース無効化の例environments/disable-telemetry.yaml
パラメタ定義によるカスタマイズ
Tripleo Deep Dive: TripleOの使い方: TripleOを使ったカスタマイズ
38
1. THTパラメタの利用
parameter_defaults:
Debug: true
3. Injection用のHieradataの利用*12. パラメタに対応したHieradataの利用
parameter_defaults:
ComputeExtraConfig:
nova::compute::vnc_keymap: ja
parameter_defaults:
ControllerExtraConfig:
cinder::config::cinder_config:
backend_default/use_multipath_for_image_xfer:
value: true
THTパラメタが
ある
Puppet
Hieradataが
ある
*1 利用可否は Puppetの実装に依存。原則 OpenStack関連サービス (Horizon除く)のみ利用可。
Yes
No
Yes
No
● THT, Puppetでのパラメタの実装状況に応じて設定方法を選択
カスタマイズ用の特殊なリソース
Tripleo Deep Dive
● スクリプト等が実行できるリソースが複数容易されている
○ 実行タイミングや範囲が異なる
○ スタック更新のたびに実行されるリソースでは、スクリプト等の冪等性に注意が必要
39
リソース名 実行タイミング 契機
利用可能
Network
リソースタイプ
OS::TripleO::NodeUserData
OS::TripleO::[ROLE]::NodeUserData
ベアメタルノードデプロイ中
ノード
デプロイ
ControlPlane
のみ
OS::Nova::Server
(に渡されるuser_data)
OS::TripleO::PreNetworkConfig
OS::TripleO::[ROLE]::PreNetworkConfig
NodeUserData実行後 (個別定義)※1
ControlPlane
のみ
(個別定義)
OS::TripleO::[ROLE]ExtraConfigPre ネットワーク設定完了後 (個別定義)※1 全Network
OS::Heat::SoftwareDeploy
ment
OS::TripleO::NodeExtraConfig ネットワーク設定完了後 (個別定義)※1 全Network
OS::Heat::SoftwareDeploy
ment
OS::TripleO::ExtraConfigPost ソフトウェア設定完了後 (個別定義)※1 全Network
OS::Heat::SoftwareDeploy
ment
*1 リソース定義の actionsの設定内容により、初期デプロイのみ orスタック更新毎 などの制御が可能
linkedin.com/company/red-hat
youtube.com/user/RedHatVideos
facebook.com/redhatinc
twitter.com/RedHat
Thank you
40

Recommended for you

openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713

Summitで人・ひと・ヒト。いま熱く&深く語ろうコンテナとNeutron DVR - Neutron DVR Deep Dive - (「5周年特別企画: OpenStack Summitの歩き方」より) http://eventregist.com/e/openstack

openstackneutrondvr
RgGen ご紹介
RgGen ご紹介RgGen ご紹介
RgGen ご紹介

Design Solution Forum 2021 SP13

Oss LT会_20210203
Oss LT会_20210203Oss LT会_20210203
Oss LT会_20210203

2021年2月3日に開催された「OSS LT会 -集まれコミッター・コントリビューター」で発表した内容です。

cliboaossconpass

More Related Content

What's hot

OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!
ksk_ha
 
急速に進化を続けるCNIプラグイン Antrea
急速に進化を続けるCNIプラグイン Antrea 急速に進化を続けるCNIプラグイン Antrea
急速に進化を続けるCNIプラグイン Antrea
Motonori Shindo
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
 
containerdの概要と最近の機能
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能
Kohei Tokunaga
 
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
whywaita
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
VirtualTech Japan Inc.
 
KubernetesバックアップツールVeleroとちょっとした苦労話
KubernetesバックアップツールVeleroとちょっとした苦労話KubernetesバックアップツールVeleroとちょっとした苦労話
KubernetesバックアップツールVeleroとちょっとした苦労話
imurata8203
 
OpenStackトラブルシューティング入門
OpenStackトラブルシューティング入門OpenStackトラブルシューティング入門
OpenStackトラブルシューティング入門
VirtualTech Japan Inc.
 
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
VirtualTech Japan Inc.
 
Red Hat OpenShift Container Storage
Red Hat OpenShift Container StorageRed Hat OpenShift Container Storage
Red Hat OpenShift Container Storage
Takuya Utsunomiya
 
【OpenStack共同検証ラボ】OpenStack監視・ログ分析基盤の作り方 - OpenStack最新情報セミナー(2016年7月)
【OpenStack共同検証ラボ】OpenStack監視・ログ分析基盤の作り方 - OpenStack最新情報セミナー(2016年7月)【OpenStack共同検証ラボ】OpenStack監視・ログ分析基盤の作り方 - OpenStack最新情報セミナー(2016年7月)
【OpenStack共同検証ラボ】OpenStack監視・ログ分析基盤の作り方 - OpenStack最新情報セミナー(2016年7月)
VirtualTech Japan Inc.
 
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
NTT DATA Technology & Innovation
 
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker  ~ VirtualBox でも STONITH 機能が試せる! Vi...VirtualBox と Rocky Linux 8 で始める Pacemaker  ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
ksk_ha
 
TIME_WAITに関する話
TIME_WAITに関する話TIME_WAITに関する話
TIME_WAITに関する話
Takanori Sejima
 
ロードバランスへの長い道
ロードバランスへの長い道ロードバランスへの長い道
ロードバランスへの長い道
Jun Kato
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
歩 柴田
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
 
Prometheus at Preferred Networks
Prometheus at Preferred NetworksPrometheus at Preferred Networks
Prometheus at Preferred Networks
Preferred Networks
 
ONIC-Japan-2019-OVN public
ONIC-Japan-2019-OVN publicONIC-Japan-2019-OVN public
ONIC-Japan-2019-OVN public
Manabu Ori
 

What's hot (20)

OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!
 
急速に進化を続けるCNIプラグイン Antrea
急速に進化を続けるCNIプラグイン Antrea 急速に進化を続けるCNIプラグイン Antrea
急速に進化を続けるCNIプラグイン Antrea
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
containerdの概要と最近の機能
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能
 
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
 
KubernetesバックアップツールVeleroとちょっとした苦労話
KubernetesバックアップツールVeleroとちょっとした苦労話KubernetesバックアップツールVeleroとちょっとした苦労話
KubernetesバックアップツールVeleroとちょっとした苦労話
 
OpenStackトラブルシューティング入門
OpenStackトラブルシューティング入門OpenStackトラブルシューティング入門
OpenStackトラブルシューティング入門
 
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
 
Red Hat OpenShift Container Storage
Red Hat OpenShift Container StorageRed Hat OpenShift Container Storage
Red Hat OpenShift Container Storage
 
【OpenStack共同検証ラボ】OpenStack監視・ログ分析基盤の作り方 - OpenStack最新情報セミナー(2016年7月)
【OpenStack共同検証ラボ】OpenStack監視・ログ分析基盤の作り方 - OpenStack最新情報セミナー(2016年7月)【OpenStack共同検証ラボ】OpenStack監視・ログ分析基盤の作り方 - OpenStack最新情報セミナー(2016年7月)
【OpenStack共同検証ラボ】OpenStack監視・ログ分析基盤の作り方 - OpenStack最新情報セミナー(2016年7月)
 
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
 
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker  ~ VirtualBox でも STONITH 機能が試せる! Vi...VirtualBox と Rocky Linux 8 で始める Pacemaker  ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
 
TIME_WAITに関する話
TIME_WAITに関する話TIME_WAITに関する話
TIME_WAITに関する話
 
ロードバランスへの長い道
ロードバランスへの長い道ロードバランスへの長い道
ロードバランスへの長い道
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
Prometheus at Preferred Networks
Prometheus at Preferred NetworksPrometheus at Preferred Networks
Prometheus at Preferred Networks
 
ONIC-Japan-2019-OVN public
ONIC-Japan-2019-OVN publicONIC-Japan-2019-OVN public
ONIC-Japan-2019-OVN public
 

Similar to TripleO Deep Dive 1.1

コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな!  PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとはコンテナを止めるな!  PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
ksk_ha
 
osc_tokyo20100226
osc_tokyo20100226osc_tokyo20100226
osc_tokyo20100226
Shoken Fujisaki
 
20131019 OSC@Tokyo CloudStackユーザー会
20131019 OSC@Tokyo CloudStackユーザー会20131019 OSC@Tokyo CloudStackユーザー会
20131019 OSC@Tokyo CloudStackユーザー会
samemoon
 
OCaml でデータ分析
OCaml でデータ分析OCaml でデータ分析
OCaml でデータ分析
Akinori Abe
 
PTLのお仕事とリリースパイプラインの裏側
PTLのお仕事とリリースパイプラインの裏側PTLのお仕事とリリースパイプラインの裏側
PTLのお仕事とリリースパイプラインの裏側
masahito12
 
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて
Takuto Matsuu
 
20181228 ncf to_azure_batch
20181228 ncf to_azure_batch20181228 ncf to_azure_batch
20181228 ncf to_azure_batch
PIXELAcorporation
 
使ってみよう CloudStack
使ってみよう CloudStack 使ってみよう CloudStack
使ってみよう CloudStack
samemoon
 
Taming Distributed/Parallel Query Execution Engine of Apache Spark
Taming Distributed/Parallel Query Execution Engine of Apache SparkTaming Distributed/Parallel Query Execution Engine of Apache Spark
Taming Distributed/Parallel Query Execution Engine of Apache Spark
Takeshi Yamamuro
 
Cloud OS「Apache CloudStack」をお手軽に使ってみる方法
Cloud OS「Apache CloudStack」をお手軽に使ってみる方法Cloud OS「Apache CloudStack」をお手軽に使ってみる方法
Cloud OS「Apache CloudStack」をお手軽に使ってみる方法
samemoon
 
openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713
Takehiro Kudou
 
RgGen ご紹介
RgGen ご紹介RgGen ご紹介
RgGen ご紹介
Taichi Ishitani
 
Oss LT会_20210203
Oss LT会_20210203Oss LT会_20210203
Oss LT会_20210203
BrainPad Inc.
 
ドリコムのインフラCI
ドリコムのインフラCIドリコムのインフラCI
ドリコムのインフラCI
Go Sueyoshi (a.k.a sue445)
 
10年ぶりの ニューラルネットワーク
10年ぶりの ニューラルネットワーク10年ぶりの ニューラルネットワーク
10年ぶりの ニューラルネットワーク
Takatsugu Nokubi
 
Report of OpenStack Ops Meetup Palo Alto (in Japanese)
Report of OpenStack Ops Meetup Palo Alto (in Japanese)Report of OpenStack Ops Meetup Palo Alto (in Japanese)
Report of OpenStack Ops Meetup Palo Alto (in Japanese)
Hirofumi Ichihara
 
Vault の鍵管理機構
Vault の鍵管理機構Vault の鍵管理機構
Vault の鍵管理機構
Katsuya Yamaguchi
 
Argo CDについて
Argo CDについてArgo CDについて
Kubernetes 初心者の僕からの JKD 参加報告
Kubernetes 初心者の僕からの JKD 参加報告Kubernetes 初心者の僕からの JKD 参加報告
Kubernetes 初心者の僕からの JKD 参加報告
Kentaro NOMURA
 
Getting Started with Jetson Nano
Getting Started with Jetson NanoGetting Started with Jetson Nano
Getting Started with Jetson Nano
NVIDIA Japan
 

Similar to TripleO Deep Dive 1.1 (20)

コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな!  PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとはコンテナを止めるな!  PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
 
osc_tokyo20100226
osc_tokyo20100226osc_tokyo20100226
osc_tokyo20100226
 
20131019 OSC@Tokyo CloudStackユーザー会
20131019 OSC@Tokyo CloudStackユーザー会20131019 OSC@Tokyo CloudStackユーザー会
20131019 OSC@Tokyo CloudStackユーザー会
 
OCaml でデータ分析
OCaml でデータ分析OCaml でデータ分析
OCaml でデータ分析
 
PTLのお仕事とリリースパイプラインの裏側
PTLのお仕事とリリースパイプラインの裏側PTLのお仕事とリリースパイプラインの裏側
PTLのお仕事とリリースパイプラインの裏側
 
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて
 
20181228 ncf to_azure_batch
20181228 ncf to_azure_batch20181228 ncf to_azure_batch
20181228 ncf to_azure_batch
 
使ってみよう CloudStack
使ってみよう CloudStack 使ってみよう CloudStack
使ってみよう CloudStack
 
Taming Distributed/Parallel Query Execution Engine of Apache Spark
Taming Distributed/Parallel Query Execution Engine of Apache SparkTaming Distributed/Parallel Query Execution Engine of Apache Spark
Taming Distributed/Parallel Query Execution Engine of Apache Spark
 
Cloud OS「Apache CloudStack」をお手軽に使ってみる方法
Cloud OS「Apache CloudStack」をお手軽に使ってみる方法Cloud OS「Apache CloudStack」をお手軽に使ってみる方法
Cloud OS「Apache CloudStack」をお手軽に使ってみる方法
 
openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713
 
RgGen ご紹介
RgGen ご紹介RgGen ご紹介
RgGen ご紹介
 
Oss LT会_20210203
Oss LT会_20210203Oss LT会_20210203
Oss LT会_20210203
 
ドリコムのインフラCI
ドリコムのインフラCIドリコムのインフラCI
ドリコムのインフラCI
 
10年ぶりの ニューラルネットワーク
10年ぶりの ニューラルネットワーク10年ぶりの ニューラルネットワーク
10年ぶりの ニューラルネットワーク
 
Report of OpenStack Ops Meetup Palo Alto (in Japanese)
Report of OpenStack Ops Meetup Palo Alto (in Japanese)Report of OpenStack Ops Meetup Palo Alto (in Japanese)
Report of OpenStack Ops Meetup Palo Alto (in Japanese)
 
Vault の鍵管理機構
Vault の鍵管理機構Vault の鍵管理機構
Vault の鍵管理機構
 
Argo CDについて
Argo CDについてArgo CDについて
Argo CDについて
 
Kubernetes 初心者の僕からの JKD 参加報告
Kubernetes 初心者の僕からの JKD 参加報告Kubernetes 初心者の僕からの JKD 参加報告
Kubernetes 初心者の僕からの JKD 参加報告
 
Getting Started with Jetson Nano
Getting Started with Jetson NanoGetting Started with Jetson Nano
Getting Started with Jetson Nano
 

Recently uploaded

能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
Tetsuya Nihonmatsu
 
論文紹介:Coarse-to-Fine Amodal Segmentation with Shape Prior
論文紹介:Coarse-to-Fine Amodal Segmentation with Shape Prior論文紹介:Coarse-to-Fine Amodal Segmentation with Shape Prior
論文紹介:Coarse-to-Fine Amodal Segmentation with Shape Prior
Toru Tamaki
 
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツールMOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
TsuyoshiSaito7
 
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
TsuyoshiSaito7
 
VRM*VOICEVOX*GoogleCloudを使って自分だけのAIパートナーを作る話
VRM*VOICEVOX*GoogleCloudを使って自分だけのAIパートナーを作る話VRM*VOICEVOX*GoogleCloudを使って自分だけのAIパートナーを作る話
VRM*VOICEVOX*GoogleCloudを使って自分だけのAIパートナーを作��話
company21
 
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
iPride Co., Ltd.
 
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
Tatsuya Ishikawa
 
第10回 Gen AI 勉強会「人材育成・教育WG活動報告」とChatGPTでピアノライブ♪
第10回 Gen AI 勉強会「人材育成・教育WG活動報告」とChatGPTでピアノライブ♪第10回 Gen AI 勉強会「人材育成・教育WG活動報告」とChatGPTでピアノライブ♪
第10回 Gen AI 勉強会「人材育成・教育WG活動報告」とChatGPTでピアノライブ♪
嶋 是一 (Yoshikazu SHIMA)
 
内製化 × グローバル化を通じた 世界水準の IT 組織づくり - ファーストリテイリング・デジタル変革の挑戦
内製化 × グローバル化を通じた 世界水準の IT 組織づくり - ファーストリテイリング・デジタル変革の挑戦内製化 × グローバル化を通じた 世界水準の IT 組織づくり - ファーストリテイリング・デジタル変革の挑戦
内製化 × グローバル化を通じた 世界水準の IT 組織づくり - ファーストリテイリング・デジタル変革の挑戦
Fast Retailing Co., Ltd.
 
pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
Hironori Washizaki
 

Recently uploaded (12)

能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
 
論文紹介:Coarse-to-Fine Amodal Segmentation with Shape Prior
論文紹介:Coarse-to-Fine Amodal Segmentation with Shape Prior論文紹介:Coarse-to-Fine Amodal Segmentation with Shape Prior
論文紹介:Coarse-to-Fine Amodal Segmentation with Shape Prior
 
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツールMOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
 
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
 
VRM*VOICEVOX*GoogleCloudを使って自分だけのAIパートナーを作る話
VRM*VOICEVOX*GoogleCloudを使って自分だけのAIパートナーを作る話VRM*VOICEVOX*GoogleCloudを使って自分だけのAIパートナーを作る話
VRM*VOICEVOX*GoogleCloudを使って自分だけのAIパートナーを作る話
 
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
 
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
 
第10回 Gen AI 勉強会「人材育成・教育WG活動報告」とChatGPTでピアノライブ♪
第10回 Gen AI 勉強会「人材育成・教育WG活動報告」とChatGPTでピアノライブ♪第10回 Gen AI 勉強会「人材育成・教育WG活動報告」とChatGPTでピアノライブ♪
第10回 Gen AI 勉強会「人材育成・教育WG活動報告」とChatGPTでピアノライブ♪
 
内製化 × グローバル化を通じた 世界水準の IT 組織づくり - ファーストリテイリング・デジタル変革の挑戦
内製化 × グローバル化を通じた 世界水準の IT 組織づくり - ファーストリテイリング・デジタル変革の挑戦内製化 × グローバル化を通じた 世界水準の IT 組織づくり - ファーストリテイリング・デジタル変革の挑戦
内製化 × グローバル化を通じた 世界水準の IT 組織づくり - ファーストリテイリング・デジタル変革の挑戦
 
pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostGISの落とし穴 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
 

TripleO Deep Dive 1.1

  • 1. TripleO Deep Dive 1.1 Takashi Kajinami Software Maintenance Engineer OpenStack Days Tokyo 2019
  • 2. はじめに Tripleo Deep Dive: はじめに ● この資料は、Cloud Native Days Tokyo 2019 / OpenStack Days Tokyo 2019での発表資 料の修正・更新版です ○ https://cloudnativedays.jp/cndt2019/ 2
  • 3. 自己紹介 Tripleo Deep Dive ● 梶波 崇 (Takashi Kajinami) ○ https://launchpad.net/~kajinamit ○ https://github.com/kajinamit/ ● Software Maintenance Engineer at Red Hat K.K. ○ OpenStack/NFVのサポート ● OpenStackは7年+ ○ Storlets Core reviewer (現) https://wiki.openstack.org/wiki/Storlets ○ Masakari Core reviewer (元) https://wiki.openstack.org/wiki/Masakari ○ 最近はもっぱらTripleO 3
  • 4. Agenda Tripleo Deep Dive ● 今日話すこと ○ TripleOとは? ○ TripleOのアーキテクチャ ○ THT(tripleo-heat-templates)詳解 ○ TripleOの使い方 ● 今日話さないこと ○ Update, Upgrade ○ RHOSPでのサポート有無 ● 注意してほしいこと ○ 本資料はQueensリリースをベースに作成しています ○ バージョンによっては記載内容と異なる場合があります 4
  • 6. OpenStackとは? Tripleo Deep Dive: TripleOとは? ● 「クラウド(IaaS)を構築するためのOSS」 ● 仮想マシン、ネットワーク、ストレージを APIにより管理する機能を提供 ○ 基本的にスコープはコントロールプレーンのみ ○ リソース実体はKVM, ovsなどの既存ソフトウェアを利用 ● 複数のプロジェクトから構成 ○ Nova : 仮想マシン管理 ○ Cinder : ストレージ管理 ○ Neutron : ネットワーク管理 参考: https://www.openstack.org/ 6
  • 7. TripleOとは? Tripleo Deep Dive: TripleOとは? ● TripleO = OpenStack On OpenStack ● OpenStackを使ってOpenStackをインストールするプロジェクト ○ HPが中心となりプロジェクトを立ち上げ、開発 ○ Red Hat OpenStack Platformでもインストーラとして利用 ● 複数リポジトリにより構成される ○ python-tripleoclient : デプロイ操作用のCLIツール(openstackコマンドに統合) ○ tripleo-common : ライブラリ、Template等 ○ tripleo-heat-templates : デプロイ構成を規定するHeatテンプレート ○ puppet-tripleo : 設定時のエントリーポイントとなるpuppet manifest 参考: https://wiki.openstack.org/wiki/TripleO 7
  • 8. TripleOの歩み Tripleo Deep Dive: TripleOとは? 8 Juno Kilo Liberty Mitaka Newton Ocata Pike Queens Rocky SteinIcehouse Icehouse Incubation Project化 Juno VIP対応 Kilo cinder-volume Act/Sby Liberty Release branch導入 Mitaka Mistral導入 TripleO UI追加 Newton Composable Role導入 Ironic、OVS-DPDK、SR-IOV対応 Ocata DB/MQのComposable Role対応 Octavia、OVN対応 Pike Overcloudのコンテナ化(一部) Keystone v2の廃止 Queens Overcloudのコンテナ化 Spine-leaf対応 Rocky Undercloudのコンテナ化 デプロイ処理のAnsible化 Train Stein Podman対応 OVNのデフォルト化
  • 10. Undercloud Overcloud TripleOのアーキテクチャ Tripleo Deep Dive: TripleOのアーキテクチャ ● TripleOで構築したOpenStackは、2層のOpenStackより構成される ○ Undercloud: インストーラが動作するベアメタルクラウド ○ Overcloud : Undercloud上のベアメタルインスタンスで構成された OpenStack Controller Baremetal Compute Baremetal Compute Baremetal Compute VMVM Server Server Server Server Controller Compute Storage 10
  • 11. TripleOが利用する既存コンポーネント Tripleo Deep Dive: TripleOのアーキテクチャ 11 コンポーネント名 用途 Heat テンプレートに従ったリソース (インスタンス等)の生成 インスタンス上のソフトウェア設定 Ironic ベアメタルインスタンスの生成 Swift Overcloud構成データ等の保管 Mistral ワークフローの実行 Kolla コンテナイメージのビルド ● TripleOは、既存コンポーネントを活用してデプロイ処理を実現する ○ TripleOのスコープは、構成・ワークフローの定義やツール群まで 一番重要!
  • 12. OpenStack Heat Tripleo Deep Dive: TripleOのアーキテクチャ ● OpenStackにおけるOrchestration機能を提供するコンポーネント ● 仮想マシン・ネットワーク等の OpenStackのリソースだけでなく、 仮想マシン上の設定な ど も管理できる ○ OS::Heat::SoftwareConfig ■ サーバ上で実行する処理 (ansible playbook等)を規定するリソース ○ OS::Heat::SoftwareDeployment ■ SoftwareConfigと実行するノード、パラメタを関連付けるリソース ● TripleOでは、このSoftwareConfig/Deploymentの機能をフル活用して Overcloudの各 種設定を適用する 参考: https://wiki.openstack.org/wiki/Heat 12
  • 13. デプロイ処理の流れ(1) デプロイ準備 Tripleo Deep Dive: TripleOのアーキテクチャ 13 Undercloud Overcloud Controller Server Server Swift Heat Ironic Nova Neutron openstack cli template Templateを用意して $ openstack overcloud deploy …
  • 14. デプロイ処理の流れ(2) planの作成 Tripleo Deep Dive: TripleOのアーキテクチャ 14 Undercloud Overcloud Controller Server Server Swift Heat Ironic Nova Neutron openstack cli template plan openstack cli内でtemplateからplanを 作成してswiftに格納
  • 15. デプロイ処理の流れ(3) overcloudスタックの作成 Tripleo Deep Dive: TripleOのアーキテクチャ 15 Undercloud Overcloud Controller Server Server Swift Heat Ironic Nova Neutron openstack cli template plan openstack cliがHeatにスタックの作成 をリクエスト overcloud
  • 16. デプロイ処理の流れ(4) OSインストール Tripleo Deep Dive: TripleOのアーキテクチャ 16 Undercloud Overcloud Controller Server Server Swift Heat Ironic Nova Neutron openstack cli template plan OS overcloud HeatがIronic/Nova/Neutronを使ってベ アメタルインスタンスをデプロイ
  • 17. デプロイ処理の流れ(5) ネットワーク設定 Tripleo Deep Dive: TripleOのアーキテクチャ 17 Undercloud Overcloud Controller Server Server Swift Heat Ironic Nova Neutron openstack cli template plan OS nic設定os-net-config os-collect-config overcloud SoftwareConfig/Deploymentリソースを 使ってnic設定スクリプトを実行
  • 18. デプロイ処理の流れ(6) ホスト・サービス設定 Tripleo Deep Dive: TripleOのアーキテクチャ 18 Undercloud Overcloud Controller Server Server Swift Heat Ironic Nova Neutron openstack cli template plan OS nic設定 ホスト設定 サービス設定 os-net-config os-collect-config puppet ansible overcloud SoftwareConfig/Deploymentリソースを 使いansibleを実行。ansibleからpuppet などを呼び出し設定適用
  • 19. デプロイ処理の流れ(7) コンテナの設定(Pike以降) Tripleo Deep Dive: TripleOのアーキテクチャ 19 Undercloud Overcloud Controller Server Server Swift Heat Ironic Nova Neutron openstack cli template plan OS nic設定 ホスト設定 コンテナ設定 os-net-config puppet サービス設定 os-collect-config ansible paunch puppet overcloud Pike以降ではansible内でコンテナの設 定も実行。 コンテナ設定はpaunchで管理
  • 20. デプロイ処理のAnsible化 (Rocky以降) Tripleo Deep Dive: TripleOのアーキテクチャ 20 Undercloud Overcloud Controller Server Server Swift Heat Mistral openstack cli template plan OS nic設定 ホスト設定 コンテナ設定 os-net-config puppet サービス設定 ansible paunch puppet overcloud ansible ソフトウェア設定をHeatからAnsibleに 切り出し。 MistralがPlaybookの実行を管理 参考: https://docs.openstack.org/tripleo-docs/latest/install/advanced_deployment/ansible_config_download.html
  • 22. THT(tripleo-heat-templates)とは? Tripleo Deep Dive: THT詳解 ● Overcloudの構成を定義するHeatテンプレートコレクション (yamlの集合体) ○ サーバの構成 ○ ネットワークの構成 ○ サーバ上のソフトウェアの構成 ● 一部yaml��、Jinja2によりRole情報・Network情報等から自動生成 ○ foo.yaml : yamlファイル ○ foo.j2.yaml, foo.j2 : jinja2 templateファイル ● THTのデフォルトtemplate + 環境に合わせてカスタマイズした個別 templateを組み合わ せてOvercloudを構築する 参考: https://github.com/openstack/tripleo-heat-templates 22 (undercloud)$ openstack overcloud deploy --templates -e /home/stack/templates/storage-environment.yaml -e /home/stack/templates/network-environment.yaml ...
  • 23. Q. jinja2って何? A. こんな奴 Tripleo Deep Dive: THT詳解 23 {%- set primary_role = [roles[0]] -%} {%- for role in roles -%} {%- if 'primary' in role.tags and 'controller' in role.tags -%} {%- set _ = primary_role.pop() -%} {%- set _ = primary_role.append(role) -%} {%- endif -%} {%- endfor -%} {%- set primary_role_name = primary_role[0].name -%} ... resource_registry: # networks as defined in network_data.yaml {%- for network in networks if network.enabled|default(true) %} OS::TripleO::Network::{{network.name}}: ../network/{{network.name_lower|default(network.name.lower())}}.yaml {%- endfor %} # Port assignments for the VIPs {%- for network in networks if network.vip and network.enabled|default(true) %} OS::TripleO::Network::Ports::{{network.name}}VipPort: ../network/ports/{{network.name_lower|default(network.name.lower())}}.yaml {%- endfor %} OS::TripleO::Network::Ports::RedisVipPort: ../network/ports/vip.yaml ... 参考: http://jinja.pocoo.org/
  • 24. THTの中身 Tripleo Deep Dive: THT詳解 $ ls /usr/share/openstack-tripleo-heat-templates/ docker environments extraconfig firstboot network network_data.yaml overcloud.j2.yaml overcloud-resource-registry-puppet.j2.yaml puppet roles roles_data.yaml 24 個別templateサンプル Docker設定 Network定義 Puppet設定 Role定義 stack作成時のentrypoint 注. 簡単のため、一部のディレクトリ・ファイルを省略 注. Rocky以降でリファクタされた (docker, puppet -> deployment)
  • 25. Role定義(roles_data.yaml) Tripleo Deep Dive: THT詳解 ● Role = 各サーバの役割 ○ Controller, Compute, ... ● Role毎に必要リソース・パラメタを定義 ○ 接続するネットワーク ○ 起動するサービス ○ ホスト名フォーマット ● 物理サーバと物理サーバ上にデプロイする Roleは、 NovaのFlavorとIronicのcapabilitiesを利用して固定 25 - name: Controller ... networks: - External - InternalApi - Storage - StorageMgmt - Tenant ... default_route_networks: ['External'] HostnameFormatDefault: '%stackname%-controller-%index%' ... update_serial: 1 ServicesDefault: … - OS::TripleO::Services::NovaApi - OS::TripleO::Services::NovaConductor - OS::TripleO::Services::NovaConsoleauth - OS::TripleO::Services::NovaIronic - OS::TripleO::Services::NovaMetadata - OS::TripleO::Services::NovaPlacement - OS::TripleO::Services::NovaScheduler - OS::TripleO::Services::NovaVncProxy - OS::TripleO::Services::Ntp ... (undercloud)$ openstack flavor create --id auto … networker (undercloud)$ openstack flavor set ... --property "capabilities:profile"="networker" networker (undercloud)$ openstack baremetal node set --property capabilities='profile:networker,boot_option:local' ... roles_data.yamlより抜粋
  • 26. Network定義(network_data.yaml) Tripleo Deep Dive: THT詳解 ● Overcloudが接続するL2ネットワークの定義 ○ IPサブネット, VLANタグ, ... ● 通信用途毎にネットワークを分離できる ○ 標準で定義されるネットワークは右表を参照 ● 構成に合わせた追加や無効化が可能 ○ Storageネットワークの分割(iSCSI multipath) ○ Stonith実行用のIPMIネットワークの追加 ○ StorageManagementの無効化 26 - name: InternalApi name_lower: internal_api vip: true vlan: 20 ip_subnet: '172.16.2.0/24' allocation_pools: [{'start': '172.16.2.4', 'end': '172.16.2.250'}] ipv6_subnet: 'fd00:fd00:fd00:2000::/64' ipv6_allocation_pools: [{...}] - name: External ... 名前 用途 InternalAPI Internal/Admin Endpoint *1, 内部通信 Tenant 仮想マシン通信 External Public Endpoint, Floating IP Storage ストレージIO StorageManagement ストレージ同期通信 (Swift, Ceph) Management *2 管理作業 ControlPlane *3 TripleOによるデプロイメント・操作 *1 Keystoneのみadmin endpointはデフォルトで ControlPlaneを利用 *2 Managementネットワークは Optional *3 ControlPlaneはUndercloudインストール時に設定し、 network_data.yamlには 記載しないが、簡単のため記載 network_data.yamlより抜粋 標準で定義されるネットワーク一覧
  • 27. THTにおけるNetwork設定方法 Tripleo Deep Dive: THT詳解 ● THTでは、Network情報がデフォルトで定義される ● 一方で具体的なNetwork設定のためのリソースはデフォルトで無効化されている ○ 作成がSkipされるOS::Heat::Noneリソースが割り当てられている  ⇨ Network関連リソースを定義する templateを別途作成/指定する必要がある 1. OS::TripleO::Network 2. OS::TripleO::[ROLE]::Net::SoftwareConfig 27
  • 28. OS::TripleO::Network Tripleo Deep Dive: THT詳解: THTにおけるNetwork設定方法(1) ● Overcloudのネットワーク関連リソース (Neutronのリソースに相当) ○ OS::TripleO::Network::[NETWORK]Api ⇨Network + Subnet ○ OS::TripleO::Network::Ports::[NETWORK]Api ⇨Port (サーバIP用) ○ OS::TripleO::Network::Ports::[NETWORK]VipPort ⇨Port (VIP用) ● THTリポジトリにおいて、 jinja2を使ったtemplateサンプルが提供されている ○ environments/network-isolation.j2.yaml ⇨Neutronリソース定義 ○ environments/network-environment.j2.yaml ⇨単一NICを利用する場合のパラメタ定義+NIC構成定義(後述) 28
  • 29. OS::TripleO::[NETWORK]::Net::SoftwareConfig Tripleo Deep Dive: THT詳解: THTにおけるNetwork設定方法(2) ● サーバ上のインタフェース設定用のリソース ○ サブネット*1, route ○ VLAN ○ ovs/Linux bond ○ ovs/Linux bridge ○ DNS ● デフォルト無効のため、サーバのインタフェース構成に合わせ てtemplateを準備する必要がある ● インタフェース設定は、 os-net-configによって実行*2 ○ 構成情報はOvercloudノードの/etc/os-net-config.jsonに保管 ○ 適用の様子は下記コマンド等で確認可能 29 resources: OsNetConfigImpl: type: OS::Heat::SoftwareConfig properties: group: script config: str_replace: template: get_file: ../../scripts/run-os-net-config.sh params: $network_config: network_config: - type: ovs_bridge name: br-ex use_dhcp: false ... members: - type: interface name: nic1 primary: true - type: vlan vlan_id: get_param: InternalApiNetworkVlanID addresses: - ip_netmask: get_param: InternalApiIpSubnet $ sudo os-net-config --noop -v -c /etc/os-net-config/config.json *1 各Networkのサブネットを指定することで、 Network内に作成した PortのIPが自動で選択される *2 Overcloudの各インタフェースの IP設定は、ノード初期インストール時の ControlPlaneでのIP割当 を除き、NeutronのDHCP機能を利用しない template記載例
  • 30. Puppet設定(puppet/services/*.yaml) Tripleo Deep Dive: THT詳解 ● 設定ファイル生成のための Puppet実行パラメタ等を定義した template ○ config_settings : Hieradata ○ step_config : 有効化するモジュール 30 outputs: role_data: value: service_name: keystone config_settings: map_merge: - get_attr: [ApacheServiceBase, role_data, config_settings] - keystone::database_connection: …. keystone::admin_token: {get_param: AdminToken} keystone::admin_password: {get_param: AdminPassword} keystone::roles::admin::password: {get_param: AdminPassword} keystone::policy::policies: {get_param: KeystonePolicies} … step_config: | include ::tripleo::profile::base::keystone puppet/services/keystone.yaml より抜粋 (tripleo-heat-templates) class keystone::roles::admin( $password, $email = 'admin@localhost', $admin = 'admin', $admin_tenant = 'openstack', ... ) { ... manifests/roles/admin.pp より抜粋 (puppet-keystone) manifests/profile/base/keystone.pp より抜粋 (puppet-tripleo) class tripleo::profile::base::keystone ( … ) { include ::keystone::config ... class { '::keystone::roles::admin': admin_roles => $admin_roles, } ….
  • 31. Docker設定(docker/services/*.yaml) Tripleo Deep Dive: THT詳解 ● Dockerコンテナの起動パラメータを定 義したtemplate ○ コマンド ○ マウント ○ ネットワーク ● おおよそのコンテナでは kolla_startか らサービスを起動   →kolla_startに合わせた形式で    データが定義される 31 outputs: role_data: description: Role data for the Nova API role. value: ... kolla_config: /var/lib/kolla/config_files/nova_api.json: command: /usr/sbin/httpd -DFOREGROUND config_files: - source: "/var/lib/kolla/config_files/src/*" dest: "/" merge: true preserve_properties: true ... step_4: nova_api: start_order: 2 image: *nova_api_image net: host user: root privileged: true restart: always healthcheck: test: /openstack/healthcheck volumes: list_concat: - {get_attr: [ContainersCommon, volumes]} - {get_attr: [NovaApiLogging, volumes]} - - /var/lib/kolla/config_files/nova_api.json:/var/lib/kolla/config_files/config.json:ro - /var/lib/config-data/puppet-generated/nova/:/var/lib/kolla/config_files/src:ro ... docker/services/nova-api.yamlより抜粋
  • 32. Deployment Stepとは? Tripleo Deep Dive: THT詳解 ● ソフトウェア設定には依存関係がある 一般的なOpenStackのインストール手順 1. OS設定 2. ミドルウェア(DB、MQ)設定・起動・ユーザ作成 3. Keystone設定・起動・ユーザ作成 4. 各サービス(Nova, Neutron, ...)起動 ● この依存関係を解決するのが Deployment Step ○ 実体は依存関係が設定された Heatのリソース群 ● THT, puppet-tripleoにて、Step毎に必要な処理を定義する ○ Step1 ~ Step 5が存在 32
  • 33. Deployment Stepの概要 Tripleo Deep Dive: THT詳解 33 リソース名 設定内容 HostPrepTask ntp設定、NFS設定など Deployment Step1 Haproxy設定 Step2 Middleware(DB, RabbitMQ)設定 Step3 DBスキーマ投入、Keystone設定・起動 Step4 OpenStackサービス設定・起動 Step5 Pacemaker設定+サービス起動後の初期設定 *1 . Octavia有効化時等は Mistralによって実行される WorkflowTaskStepNが追加で利用される。
  • 35. TripleOによるデプロイ作業 Tripleo Deep Dive: TripleOの使い方 ⇨詳細はこちら! https://docs.openstack.org/tripleo-docs/latest/install/ 35 # python-tripleoclientをインストール $ sudo yum install -y python-tripleoclient # Undercloudをインストール $ openstack undercloud install # Overcloudデプロイ用のディスクイメージを登録 $ openstack overcloud image upload --image-path /home/stack/images/ # ベアメタルノードを登録 $ openstack overcloud node import instackenv.json # ベアメタルノードのスペックを収集 $ openstack overcloud node introspect --all-manageable --provide # Overcloudをデプロイ $ openstack overcloud deploy --templates -e /home/stack/templates/node-info.yaml -e /home/stack/templates/overcloud_images.yaml … # 完成! 読み込み順序に注意! (後のもので上書き)
  • 36. TripleOを使ったカスタマイズ Tripleo Deep Dive: TripleOの使い方 ● 構成・設定をカスタマイズするための機構 1. TripleOのtemplate生成用パラメタを使うもの a. Role定義 b. Network定義 2. Heatのtemplateカスタマイズ機能を使うもの a. リソース定義 b. パラメタ定義 3. カスタマイズ用の特殊なリソースを使うもの a. ExtraConfig ● 1は説明済みなので2, 3を説明 36
  • 37. リソース定義によるカスタマイズ Tripleo Deep Dive: TripleOの使い方: TripleOを使ったカスタマイズ ● Roleに紐づくリソース一覧に対象が含まれる場合は、リソースに対する templateパスを 定義した個別templateを作成すればOK ○ リソースを有効化する場合はリソースを定義する templateのパスを指定 ○ リソースを無効化する場合は OS::Heat::None を指定 ● Role定義に必要なリソースが定義されていない場合は、カスタム Roleの作成が必要 37 resource_registry: OS::TripleO::Services::IronicApi: ../../docker/services/ironic-api.yaml OS::TripleO::Services::IronicConductor: ../../docker/services/ironic-conductor.yaml OS::TripleO::Services::IronicPxe: ../../docker/services/ironic-pxe.yaml OS::TripleO::Services::NovaIronic: ../../docker/services/nova-ironic.yaml ... resource_registry: OS::TripleO::Services::CeilometerAgentCentral: OS::Heat::None OS::TripleO::Services::CeilometerAgentNotification: OS::Heat::None OS::TripleO::Services::CeilometerAgentIpmi: OS::Heat::None OS::TripleO::Services::ComputeCeilometerAgent: OS::Heat::None ... リソース有効化の例environments/services/ironic.yaml リソース無効化の例environments/disable-telemetry.yaml
  • 38. パラメタ定義によるカスタマイズ Tripleo Deep Dive: TripleOの使い方: TripleOを使ったカスタマイズ 38 1. THTパラメタの利用 parameter_defaults: Debug: true 3. Injection用のHieradataの利用*12. パラメタに対応したHieradataの利用 parameter_defaults: ComputeExtraConfig: nova::compute::vnc_keymap: ja parameter_defaults: ControllerExtraConfig: cinder::config::cinder_config: backend_default/use_multipath_for_image_xfer: value: true THTパラメタが ある Puppet Hieradataが ある *1 利用可否は Puppetの実装に依存。原則 OpenStack関連サービス (Horizon除く)のみ利用可。 Yes No Yes No ● THT, Puppetでのパラメタの実装状況に応じて設定方法を選択
  • 39. カスタマイズ用の特殊なリソース Tripleo Deep Dive ● スクリプト等が実行できるリソースが複数容易されている ○ 実行タイミングや範囲が異なる ○ スタック更新のたびに実行されるリソースでは、スクリプト等の冪等性に注意が必要 39 リソース名 実行タイミング 契機 利用可能 Network リソースタイプ OS::TripleO::NodeUserData OS::TripleO::[ROLE]::NodeUserData ベアメタルノードデプロイ中 ノード デプロイ ControlPlane のみ OS::Nova::Server (に渡されるuser_data) OS::TripleO::PreNetworkConfig OS::TripleO::[ROLE]::PreNetworkConfig NodeUserData実行後 (個別定義)※1 ControlPlane のみ (個別定義) OS::TripleO::[ROLE]ExtraConfigPre ネットワーク設定完了後 (個別定義)※1 全Network OS::Heat::SoftwareDeploy ment OS::TripleO::NodeExtraConfig ネットワーク設定完了後 (個別定義)※1 全Network OS::Heat::SoftwareDeploy ment OS::TripleO::ExtraConfigPost ソフトウェア設定完了後 (個別定義)※1 全Network OS::Heat::SoftwareDeploy ment *1 リソース定義の actionsの設定内容により、初期デプロイのみ orスタック更新毎 などの制御が可能