FUJITSU Cloud Service for OSS
「IaaSの基本構築パターンを
GUIとAnsibleで紹介」
FUJITSU Tech Talk FOCUS 2019/6/28
富士通株式会社
クラウドサービス事業本部)ファウンデーションサービス事業部)技術戦略部
シニアマネージャー
本日のアウトライン
自己紹介
セミナーの目的と構成
FUJITSU Cloud Service for OSS ご紹介
Ansible、Horizonダッシュボードの紹介
IaaSの基本構築パターン
Horizonダッシュボードによる構築解説とデモ
Ansibleによる構築解説とデモ
自己紹介
岩松 昇 (いわまつ のぼる) [email protected]
FUJITSU Cloud Service for OSSのOpenStack基盤の設計・開発責任者
富士通研究所にて、OS/仮想化/クラウドの研究開発に従事した後、現所属に異動
オープンソースとは開発者として10数年の関わり
•
OpenStack, Xen, Linux, QEMU, cobbler, MidoNetなどにコントリビュート
最近の発表
•
OpenStack Days Tokyo 2018 「FUJITSU Cloud Service for OSSを支えるコンテナとCI/CD技術」
•
Ansible Night Tokyo 2017.12 「OpenStackをAnsibleで操る!」
•
OpenStack Summit Sydney 2018 「Lift-and-Shift Enterprise Workloads to K5 Bare Metal
Service」
本セミナーの目的
Copyright 2019 FUJITSU LIMITED
FJCS for OSSの基本構築パターンを
ダッシュボードとAnsibleで学ぶ
IaaS 設計・構築ガイド(デザインパターン・
実装サンプル集)からすぐに使える実践的な
構築・運用例をピックアップ
HorizonダッシュボードとAnsibleで使い方を
学習
対象者
IaaSを使ったことがある方、FJCS for OSS
を使ったことがある or 使う予定の方
セミナーの構成
IaaSの基本構築パターン(6/28)
インターネット接続
•
ルーター、ネットワーク作成
•
フローティングIP作成
•
セキュリティグループ
•
キーペア作成とVM作成
•
VMへのログイン
Anti-Affinityによる可用性確保
踏み台サーバーによるセキュアメンテナンス
外部負荷分散構成
IaaSの基本運用パターン(8/7)
スナップショット/リストア
スナップショット/複製
サーバーの複製
サーバーの解放/復元
オートフェイルオーバー
FUJITSU Cloud Service for OSS の紹介
FUJITSU Cloud Service for OSS とは
オープンソースをベースとするクラウド
2015年9月提供開始
•
旧称: FUJITSU Cloud Service K5
•
OpenStackベース(+独自拡張)のIaaS
2018年6月に基盤刷新&名称変更
•
OpenStackを最新化、そのまま利用
「OpenStack準拠」のクラウド
に生まれ変わった
OpenStack準拠の新クラウド基盤
RedHat社との協業により、IaaS基盤を刷新
RHOSPをIaaS基盤として採用
•
RHOSP11(Ocataリリース)
•
2019年9月にはRHOSP13(Queensリリース)へアップグレード
予定
RHEL AUS (Advanced Mission Critical Update Support)提供により、システムの
長期運用をサポート
新基盤提供リージョン
東日本2
東日本1
東日本3
2018/7
提供開始
西日本3
西日本2
西日本1
2018/6
提供開始
西日本第三リージョン(2018/6/29)、
東日本第三リージョン(2018/7/31)を開設
FUJITSU Cloud Service for OSS:
OpenStack準拠のサービス群
Copyright 2019 FUJITSU LIMITED
仮想マシンとベアメタル
仮想ネットワーク
• FWaaS
• OctaviaベースのLBaaS
認証・証明書管理
オブジェクトストレージ
• SwiftとS3互換、DR対応予定
オーケストレーション
•
FWaaS/LBaaS/Trove対応
データベースサービス
• PostgreSQL(α版)
https://www.openstack.org/project-mascots/
仮想マシン・ベアメタル
• Ironicによるベアメタル
• GPGPUインスタンス対応
ブロックストレージ
・イメージ
• All Flash Storage
• データ持ち込みサービス
FUJITSU Cloud Service for OSS:
OpenStack API Ecosystemへの対応
https://docs.ansible.com/ansible/latest/modules/list_of_cloud_modules.html#openstack
# yum install centos-release-openstack-queens
# yum install python2-openstackclient
# yum install ansible
# yum install python2-shade
OpenStack Client
OpenStack標準のコマンドラインクライアントが利用可能!
Ansible
Ansible OpenStack Moduleにより
システム構築が可能!
AnsibleとHorizonダッシュボードの紹介
Ansibleとは
オープンソース
の構成管理ツール
ソフトウェアのインストールや設定を
自動的に行ってくれるもの
特徴
•
エージェントレス
サーバー要らない
•
YAMLで記述
簡単
•
1600を超えるモジュール
何にでも使える
•
冪等性
何度実行しても同じ
https://www.ansible.com/
Ansibleは構成管理ツールで一番人気!
Copyright 2019 FUJITSU LIMITED
Google Trends: 過去2年間でのAnsible/Chef/Puppetの人気度推移
Ansible
Chef
Puppet
クラウド上のシステム構築にAnsibleを利用するのは常識
ansible AWS
でググると、
6,400,000件ヒット
ansible Azure
でググると、
3,830,000件ヒット
ansible openstack
でググると、
2,050,000件ヒット
Ansible OpenStack Module
Copyright 2019 FUJITSU LIMITED
https://docs.ansible.com/ansible/latest/modules/list_of_cloud_modules.html
AnsibleのOpenStack制御モジュール
AnsibleのCloud Modulesの一部
ネットワーク作成、サブネット作成から
サーバー作成・管理など、基本機能を網羅
約50種類のモジュール
FJCS for OSSは、
これから 「Ansible+OpenStack」で
どんどん使ってください!
OpenStack Horizonとは
OpenStack純正のDashboard
OpenStackの完全な機能提供・
拡張機能提供を目指している。
OpenStackのディストリビューターが
採用している業界標準はHorizon!
日本語表示もOK
公式ユーザードキュメント
•
https://docs.openstack.org/horizon/queens/user/
•
https://docs.openstack.org/ja/user-guide/dashboard.html
https://docs.openstack.org/horizon/queens/_images/dashboard_project_tab.pngHorizon Dashboardのドキュメント
Copyright 2019 FUJITSU LIMITED
FJCS for OSS Horizon (α版) へのログイン
契約者番号
ユーザー名
パスワード
東日本第三リージョン:
https://dashboard.jp-east-3.cloud.global.fujitsu.com/
西日本第三リージョン:
https://dashboard.jp-west-3.cloud.global.fujitsu.com/
IaaSの基本構築パターン
Step. 0
全体構成と事前セットアップ
構築するシステムの全体構成
プロジェクト
test-bastion
test-networktest-webserver_1
test-webserver_2
test-webserver_3
web_server_group
test-load-balancer
test-router
ssh internal http internalHTTP
API
SSH
Ansible & OpenStack CLIのインストール - 1
CentOS/RHEL 7
RDOレポジトリからインストールがおすすめ
•
Ansible 2.4.4とOpenStack Queensの関連ライブラリがインストールされる
(※EPELレポジトリを使うと、OpenStackライブラリの依存が満たせなくなる)
Copyright 2019 FUJITSU LIMITED
# yum install centos-release-openstack-queens
# yum install ansible
# yum install python2-shade
Ansible & OpenStack ツールのインストール -2
Ubuntu 18.04
PIPで最新版をインストールするのがおすすめ
※ Ubuntu PPAから Ansible/CloudArchiveをインストールするとコンフリクト起こしやすい
Macもpipのセットアップ後は同じやり方でいけます。
# apt-install python-pip
# pip install python-openstackclient
# pip install shade
Ansible Playbook の準備 - 1
Githubで公開しています。
ダウンロードし、適宜修正して
ご利用いただけます。
https://github.com/r0ckpine/fjcs
-ansible-examples
Ansible Playbook の準備 - 2
Playbookの準備
認証情報、パラメタファイルの作成
事前準備として、Keypair登録用の公開鍵・暗号鍵を作成してください。
VMにログインするためのSSH鍵の作成
fjcs-ansible-examples/
├── clouds.yml
・・・ OpenStackの認証情報,
sampleからコピーして編集
├── bastion_lb_web.yml ・・・ Ansible playbook
└── bastion_lb_web_vars.yml・・・ Playbookで読み込む変数,
sampleからコピー編集
$ cd fjcs-ansible-examples
$ ssh-keygen -f id_rsa_ansible
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
…
clouds.yml の記述内容
Copyright 2019 FUJITSU LIMITED
clouds
:
jp-east-3
:
auth
:
auth_url
:
https://identity.jp-east-3.cloud.global.fujitsu.com/v3
username
:
“YOUR USERNAME”
password
:
"YOUR PASSWORD"
project_domain_name
:
"YOUR DOMAIN NAME"
user_domain_name
:
"YOUR DOMAIN NAME"
project_name
:
"YOUR PROJECT NAME"
#project_id: "YOUR PROJECT UUID"
identity_api_version
:
'3'
region_name
:
jp-east-3
←契約番号のこと
←契約番号のこと
←デフォルトは”契約番号-prj”
←分からなければコメントアウト
bastion_lb_web_vars.yml の記述内容
target_cloud:
jp-east-3
network_name:
test-network
subnet_name:
test-subnet
subnet_cidr:
192.168.100.0/24
dns_servers:
[ 8.8.8.8 ]
router_attached_network:
fip-net
router_name:
test-router
keypair_name:
ansible_key
keypair_public_key_file_path:
./id_rsa_ansible.pub
keypair_private_key_file_path:
./id_rsa_ansible
volume_name:
test-volume
volume_image:
"CentOS 7.3 64bit (English) 01"
volume_size:
35
…
←利用するリージョンを選択
←fip-netは変えないでください。
←事前作成したSSH鍵をパス指定
←サンプルはRHEL/CentOS前提
Playbook 実行方法
Copyright 2019 FUJITSU LIMITED
$ ansible-playbook bastion_lb_web.yml
IaaSの基本構築パターン
Step. 1
①インターネット接続パターン
FJCS for OSS上にインターネット経由で
SSH接続可能なVMを作成します。
ネットワーク作成
サブネット作成
ルーター作成
セキュリティグループ
SSH許可用
ネットワーク内VMとの通信許可
キーペア登録
踏み台サーバーの作成
フローティングIPの付与
Copyright 2019 FUJITSU LIMITED
プロジェクト
test-bastion
test-networktest-router
ssh internalAPI
SSH
①インターネット接続パターン:
Horizonでのネットワーク・ルータ作成
①インターネット接続パターン:
Horizonでのセキュリティグループ作成
Copyright 2019 FUJITSU LIMITED
2:05
①インターネット接続パターン:
Horizonでのキーペア作成と登録
①インターネット接続パターン:
HorizonでのVM作成とフローティングIP設定
Copyright 2019 FUJITSU LIMITED
1:55
IaaSの基本構築パターン
Step. 2
②Anti-Affinityによる可用性確保
Copyright 2019 FUJITSU LIMITED
プロジェクト
test-networktest-webserver_1
test-webserver_2
test-webserver_3
web_server_group
test-router
internalAPI
FJCS for OSSでは、サーバーグループを
作成し、Anti-Affinity設定(グループ内の
サーバーが別々の物理ホストに配備される)
を行うことで可用性確保を実現します。
サーバーグループ作成
サーバ―グループを指定してWebサーバー
VMを作成
②Anti-Affinityによる可用性確保:
サーバーグループを利用したVM作成
IaaSの基本構築パターン
Step. 3
踏み台サーバーによるセキュアメンテナンス
③踏み台サーバーによるセキュアメンテナンス
プロジェクト
test-bastion
test-networktest-webserver_1
test-webserver_2
test-webserver_3
web_server_group
test-router
ssh internal internalSSH
踏み台サーバーをプロキシとして
WebサーバーにSSHログインし、
ソフトウェアの更新やインストール
作業を行うことができます。
Webサーバーをbastion経由
でSSH接続するようAnsible
inventoryを設定
WebサーバーVMにhttpdを
インストール
IaaSの基本構築パターン
Step. 4
外部負荷分散構成
④外部負荷分散構成
プロジェクト
test-networktest-webserver_1
test-webserver_2
test-webserver_3
web_server_group
test-load-balancer
test-router
http internalHTTP
API
ロードバランサ―を配備し、
インターネットからのHTTP
リクエストを、Webサーバー
に分散します。
ロードバランサ―作成
リスナー作成
プール作成
ヘルスモニター作成
メンバー作成
フローティングIP付与
④外部負荷分散構成:
ロードバランサ―の作成と設定
Copyright 2019 FUJITSU LIMITED
2:20
bastion_lb_web.yml:
OpenStackでネットワーク・インスタンス作成
Ansibleを実行するホストからOpenStackを操作する
ネットワーク、bastion VM作成までを行います。
作成されたインスタンスを続くPlayで操作する準備をします。
Copyright 2019 FUJITSU LIMITED
← 実行対象はローカルホスト
bastion_lb_web.yml:
OpenStackでネットワーク作成
ネットワーク名、CIDR、DNSなどを指定するだけで
サブネット作成ができます。
bastion_lb_web.yml:
作成したインスタンスをInventory登録
Copyright 2019 FUJITSU LIMITED
Playbookの中で作成した、bastionの情報(IPアドレスやSSH鍵)
を動的に設定し、続くbastionのセットアップで利用する。
bastion_lb_web.yml:
VMがレディになるのを待ち、yum update実施
← “bastion” に対するPlaybook
yum updateを実施
接続できるまで待つ
bastion_lb_web.yml:
ロードバランサ―の作成と設定
Copyright 2019 FUJITSU LIMITED
← 実行対象はローカルホスト
bastion_lb_web.yml:
Ansibleによるbastion, Webserver, LBの一括作成
まとめ
FUJITSU Cloud Service for OSSは、
OpenStack準拠だから、 Ansibleで使える!
「OpenStack AND Ansible」でググれば、情報が得られる
OpenStackとVM内部を行き来するシステム構築も全てAnsible一本でいけます
Copyright 2019 FUJITSU LIMITED