CentOS ベースの OpenStack 環境の展開に関する詳細なチュートリアル (OpenStack のインストール)

CentOS ベースの OpenStack 環境の展開に関する詳細なチュートリアル (OpenStack のインストール)

エフェクト表示:

ここに画像の説明を挿入
ここに画像の説明を挿入

環境準備コントローラーノード:

6GB

4時間

60GB/30GB/30GB

計算ノード

6GB

4時間

60G/60G

管理ノード(ceph 管理ノード)

2GB

4時間

60GB/6GB

OpenStack の紹介

OpenStack は、パブリックまたはプライベート クラウド プラットフォームの構築に使用できるオープン ソースのクラウド プラットフォーム管理プロジェクトです。インフラストラクチャとサービス (Iaas) ソリューションを提供します。OpenStack は、データ センターを通じてコン​​ピューティング、ストレージ、ネットワーク、その他のリソース プールを制御できるクラウド オペレーティング システムです。OpenStack は、ネットワーク、仮想化、オペレーティング システム、サーバーなどのさまざまな側面をカバーしています。OpenStack を通じて、仮想マシン リソースを起動、割り当て、管理することができ、すべての管理はフロントエンド インターフェイスを通じて完了できます。

OpenStack コアコンポーネント Nova

コンピューティング管理サービスは、仮想マシンインスタンスのライフサイクル全体を管理し、仮想マシンの作成、起動、シャットダウン、一時停止、一時停止、調整、移行、再起動、破棄、リソース割り当てなどの操作を担当します。API を通じて外部にサービスを提供し、ID 認証に KeyStone を使用し、管理インターフェイスとして Horizo​​n を使用し、イメージの提供に Glance を使用して、Nova がコンピューティング リソース、ネットワーク、認証を管理できるようにします。

中性子

ネットワーク管理サービスは、マルチテナント環境の各テナントに独立したネットワーク環境を提供します。Neutron は、OpenStack 環境全体にネットワーク サポートを提供します。ネットワーク、サブテナント、ルーターの定義、DHCP、DNS、負荷分散、L3 サービスの設定が可能で、ネットワークは GRE、VLAN などをサポートします。また、OpenvSwitch などの多くの一般的なネットワーク管理プラグインもサポートしています。

シンダー

ブロック ストレージ サービスは、ceph、glusterfs などのさまざまなストレージ バックエンドをサポートします。これは、仮想マシンと仮想マシンが使用するデータを保存するための基盤です。Cinder は、ブロック ストレージ デバイスへのアクセスと管理を提供します。OpenStack ホストの場合、ストレージはブロック デバイスの形式で表示され、バックエンド接続として ISCSI、NFS、ceph、またはその他の特別なプロトコルを使用します。Cinder のインターフェイスは、ボリュームの作成、ボリュームの削除、ボリュームのマウントなどの基本機能だけでなく、ボリュームの拡張、スナップショット、VM イメージからのクローン作成などの高度な機能を含む一連の独立した機能を指定します。

迅速

オブジェクト ストレージ サービスは、OpenStack クラスターのノード間で分散された大規模なオブジェクト ストレージ サービスを提供します。RESTful インターフェイスを介して非構造化データ オブジェクトを保存および取得します。これは、耐障害性が高く、スケーラブルなストレージ アーキテクチャです。オブジェクト ストレージは、対応するデータをファイルではなくバイナリ オブジェクトとして保存します。通常、オブジェクト全体を 1 つの命令で保存または取得できます。

キーストーン

認証管理サービスは、OpenStack フレームワーク内のモジュールであり、アイデンティティ認証、サービス ルール、およびサービス トークン機能の管理を担当します。ドメイン、プロジェクト、ユーザー、グループ、およびロールを管理し、MySQL を統合データベースとして使用します。ユーザーは、リソースにアクセスするために自分のアイデンティティと権限を検証する必要があり、サービスも操作を実行するために権限チェックを実行する必要があります。これらはすべて Keystone を介して処理する必要があります。OpenStack サービスは、Keystone を使用してエンドポイント (サービス アクセス用の URL) を登録します。サービス間の呼び出しは、最初に KeyStone によって認証され、ターゲット エンドポイントを取得してから呼び出す必要があります。

一目

イメージ管理サービスは、仮想マシンの展開時に提供できるイメージの管理を提供します。イメージの検索、登録、取得、インポート、フォーマット、対応するテンプレートの作成などが含まれます。複数の仮想マシンイメージ形式をサポートし、イメージの作成、イメージの削除、基本的なイメージ情報の編集機能を備えています。Glance は、仮想マシンイメージのメタデータを照会してイメージを取得するための RESTful API を提供します。Glance は、単純なファイルストレージやオブジェクトストレージなど、さまざまなバックエンドストレージにイメージを保存できます。

地平線

ユーザー インターフェースは、OpenStack のさまざまなサービス用の Web 管理ポータルであり、インスタンスの起動、IP アドレスの割り当て、アクセス制御の構成など、サービスに対するユーザー操作を簡素化するために使用されます。

CentOSをインストールする

yumでvimをインストール

ネットワークセグメントを表示するには、cmdウィンドウに次のコマンドを入力します。

ipconfig /すべて

ネットワークカード情報を変更する

vim /etc/sysconfig/ネットワークスクリプト/ifcfg-ens33
タイプ=イーサネット
PROXY_METHOD=なし
BROWSER_ONLY=いいえ
BOOTPROTO=静的
DEFROUTE=はい
IPV4_FAILURE_FATAL=いいえ
IPV6INIT=はい
IPV6_AUTOCONF=はい
IPV6_DEFROUTE=はい
IPV6_FAILURE_FATAL=いいえ
IPV6_ADDR_GEN_MODE=安定したプライバシー
名前=ens33
デバイス=ens33
ONBOOT=はい
IPアドレス=192.168.12.18
プレフィックス=24
ゲートウェイ=192.168.12.1
DNS1=192.168.111.2

ネットワークサービスを再起動する

サービスネットワークの再起動

コントローラ

ens33 192.168.12.18 (フローティング IP、送信アドレスを提供)

ens34 192.168.12.118 (イントラネット間の通信)

計算する

ens33 192.168.12.140 (フローティング IP、送信アドレスを提供)

ens34 192.168.12.240 (イントラネット間の通信)

# すぐに再起動するshutdown -r now

各ノードを初期化する

yum -y install wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel vim ncurses-devel autoconf automake zlib-devel python-devel epel-release lrzsz openssh-server

ファイアウォール、ネットワークマネージャ、iptables、selinuxを無効にする(各ノードでの操作)

systemctl stop firewalld && systemctl disabled firewalld && systemctl stop NetworkManager && systemctl disabled NetworkManager
systemctl iptables を停止します && systemctl iptables を無効にします

selinuxを変更する

vim /etc/sysconfig/selinux
SELINUX=無効

ホストを変更する

vim /etc/hosts
192.168.12.118 コントローラ
192.168.12.240 コンピュート

ホスト名を変更する

hostnamectl ホスト名設定コントローラー
hostnamectl set-hostname 計算

時刻同期

ntpdate cn.pool.ntp.org

各ノードでパスワード不要のログインと操作を構成する

ssh-keygen -t rsa 
#Enterキーを押し続ける ssh-copy-id -i .ssh/id_rsa.pub コントローラー
ssh-copy-id -i .ssh/id_rsa.pub コンピュータ

xftp を使用して、OpenStack オフライン ソフトウェア パッケージをルート ディレクトリにアップロードします (コントローラー ノードとコンピューティング ノードで操作します)。

ルートの下にopenstackディレクトリを作成し、ソフトウェアパッケージをこのディレクトリに解凍します。

mkdir /root/openstack && cd /root/openstack && tar zxvf /root/openstack_N.tar.gz

openstack ディレクトリ全体を / に移動する (コントローラーとコンピューター ノードの操作)

mv オープンスタック /

yum ソースを再構成する (コントローラとコンピュータ ノードの両方)

/etc/yum.repos.d/ をコピーします。 
mkdir 戻る 
mv CentOS-* バックアップ/ 
mv epel* bak/
CentOS-Base.repo をコピーします。

新しいOpenStack yumリポジトリを生成する

cat <<EOF > /etc/yum.repos.d/openstack.repo 
[オープンスタック]
有効=1
gpgcheck=0
ベースURL=ファイル:///openstack
終了

キャッシュをクリア

yum メイクキャッシュ

Openstack レスポンスファイルのインストール (コントローラーノードの操作)

yum インストール CentOS-リリース OpenStack-Newton -y
/etc/yum.repos.d をコピーします 
mv *.repo バックアップ/ 
cp /openstack.repo ./ をバックアップします。 
CentOS-Base.repo をコピーします。

キャッシュをクリア

yum メイクキャッシュ
yum で openstack-packstack をインストールします -y
cd /root
パックスタック --gen-answer-file=openstack.txt

終了後、応答ファイルopenstack.txtが生成されます。

openstack.txt ファイルを変更する

変更内容は以下のとおりです

CONFIG_DEFAULT_PASSWORD=123456
CONFIG_SWIFT_INSTALL=n
CONFIG_NAGIOS_INSTALL=n
CONFIG_CINDER_VOLUMES_SIZE=10G
CONFIG_PROVISION_DEMO=n
CONFIG_LBAAS_INSTALL=y
CONFIG_NEUTRON_FWAAS=y
CONFIG_NEUTRON_VPNAAS=y
CONFIG_CONTROLLER_HOST=192.168.12.118
CONFIG_COMPUTE_HOSTS=192.168.12.240
CONFIG_NETWORK_HOSTS=192.168.12.240

応答ファイルに基づいてコンポーネントをインストールする

パックスタック --answer-file=openstack.txt

インストール プロセス中に、コントローラーとコンピューター ノードの iptables ステータスを確認する必要があります。

systemctl ステータス iptables

iptablesがアクティブ状態であることがわかった場合は、停止する必要があります。

systemctl iptablesを停止する

インストールを成功させるには、以下の手順を参照してください。

インストールが正常に完了しました

RabbitMQの管理インターフェースを起動する(コントローラーノード操作)

rabbitmq-plugins は rabbitmq_management を有効にします

ブラウザ経由でアクセス

192.168.124.200:15672

アカウント: ゲスト

パスワード: guest

OpenStackのダッシュボードインターフェースにログインする

ブラウザに入力してください:

192.168.124.200

アカウント: 管理者

パスワード:

パスワードを取得

cd /root
猫キーストーンrc_admin

KeyStone 構成の最適化

コントローラーノードでの操作

keystone.conf を変更する

vim /etc/keystone/keystone.conf

デフォルトフィールドの下に次の行を追加します

メモリキャッシュサーバー = 192.168.12.118:11211

サービスを再起動する

systemctl で httpd を再起動します。

OpenStack に正常にアクセスできる場合、設定は成功です。

Glance 構成の最適化

glance-api.conf を変更する

vim /etc/glance/glance-api.conf

上部に追加

メモリキャッシュサーバー = 192.168.12.118:11211

Glance-registry.conf を変更する

vim /etc/glance/glance-registry.conf

上部に追加

メモリキャッシュサーバー = 192.168.12.118:11211

サービスを再起動する

systemctl を再起動します。
systemctl で openstack-glance-registry を再起動します。

Nova構成の最適化はコントローラーノード上で変更されます

nova.confを変更する

テキストエディタで /etc/nova/nova.conf を開きます。

上にmemcahceキャッシュを追加する

メモリキャッシュサーバー = 192.168.12.118:11211

元々はアドレスのみで、httpプロトコルはありませんでした。httpプロトコルを追加する必要があります。

api_servers=http://192.168.12.118:9292

この行を最初の行の下に追加します [デフォルト]

トランスポートURL=rabbit://ゲスト:ゲスト@192.168.12.118

元のIPをこれに変更してコメントを開きます

私のIP=192.168.12.118

元々は0.0.0.0でしたが、現在はこれに変更されています

vncserver_listen=192.168.12.118

元々はホスト名でしたが、このホストIPに変更します

vncserver_proxyclient_address=192.168.12.118

上記を変更した後、サービスを再起動します

systemctl を再起動します openstack-nova-api.service \
 openstack-nova-consoleauth.service openstack-nova-scheduler.service \
 openstack-nova-conductor.s:openstack-nova-novncproxy.service を提供します

コンピューティングノードで変更する

設定ファイルnova.confを変更する

テキストエディタで /etc/nova/nova.conf を開きます。

最初の行の[DEFAULT]フィールドに次の行を追加します。

メモリキャッシュサーバー = 192.168.12.118:11211

このコメント行はオンになっており、このIPアドレスになります

トランスポートURL=rabbit://ゲスト:ゲスト@192.168.12.118

この行のコメントはオンになっており、IPはホストIPになります

api_servers=http://192.168.12.118:9292

このコメント行はオンになっており、このIPアドレスになります

私のIP=192.168.12.240

このコメント行はオンになっており、このIPアドレスになります

vncserver_proxyclient_address=192.168.12.240

このコメント行はオンになっており、このIPアドレスになります

novncproxy_base_url=http://192.168.12.118:6080/vnc_auto.html

この行はコメントアウトされています

仮想化タイプ = QEMU

上記が修正されたら、サービスを再起動します

systemctl で libvirtd.service を有効にします。
systemctl libvirtd.service openstack-nova-compute.service を再起動します。

ログを確認してください、エラーはありません

ログを /var/log/nova/nova-compute.log にコピーします。

起動後、コントローラーノードのログを表示します。

/var/log/nova/nova-api.log を cat します。

エラーがなければ、

Neutron 構成の最適化

コントローラーノードでの操作

設定ファイルneutron.confを変更する

vim /etc/neutron/neutron.conf

新しい行を追加する

メモリキャッシュサーバー = 192.168.12.118:11211

transport_urlを見つけて新しい行を追加します(メッセージキューのrabbitアドレスはコントローラーノード上にあります)

トランスポート URL = rabbit://guest:[email protected]

lock_pathを見つけて絶対パスに変更します

ロックパス=/var/lib/neutron/tmp

ml2_conf.ini を変更する

vim /etc/neutron/plugins/ml2/ml2_conf.ini

vni_rangesを変更する

vni_ranges = 10:10000

上記の2つのファイルを変更した後、サービスを再起動します。

systemctl neutron-server を再起動します。

新しいポートを開いてログを確認します。エラーがない場合は、

テール -f /var/log/neutron/server.log

コンピューティングノードでの操作

ブリッジネットワークカードを作成し、それを外部ネットワークにアクセスできるネットワークカード、つまりens33にブリッジします。

/etc/sysconfig/network-scripts をコピーします
mkdir 戻る
cp ifcfg-ens33 バックアップ/
vim ifcfg-br-ex

内容をifcfg-br-exにコピーします

デバイス=br-ex
BOOTPROTO=静的
ONBOOT=はい
TYPE=OVSブリッジ
デバイスタイプ=ovs
USERCTL=はい
ピアDNS=はい
IPV6INIT=いいえ
IPアドレス=192.168.12.140
ネットマスク=255.255.255.0
DNS1=192.168.111.2
ゲートウェイ=192.168.12.1
vim の ifcfg-ens33

元のコンテンツを削除し、次の内容に置き換えます。

#デバイス名 DEVICE=ens33
# 自動起動を有効にするかどうか ONBOOT=yes
TYPE=OVSポート
デバイスタイプ=ovs
# どのネットワークカードにブリッジされますか? OVS_BRIDGE=br-ex

ネットワークカードを再起動する

サービスネットワークの再起動

設定ファイルneutron.confを変更する

vim /etc/neutron/neutron.conf

設定ファイルに新しい行を追加する

トランスポート URL = rabbit://guest:[email protected]

新しい行を追加する

memcached_servers=192.168.12.118:11211

元のパスはこうなります

ロックパス=/var/lib/neutron/tmp

第3層とフローティングIPに関連する設定ファイルを変更する

/etc/neutron をコピーする
vim l3_agent.ini

このコメント行を削除

ovs_integration_bridge = br-int

この行はコメントアウトされています

可用性ゾーン = nova

設定ファイルmetadata_agent.iniを変更する

vim メタデータエージェント.ini

この行はコメントアウトされています

nova_metadata_port = 8775

この行はコメントアウトされています

nova_metadata_protocol = http

新しい行を追加する

memcached_servers=192.168.12.118:11211

設定ファイルdhcp_agent.iniを変更する

vim dhcp_agent.ini

この行はコメントアウトされています

ovs_integration_bridge = br-int

元々はFalseでしたが、Trueに変更する必要があります

enable_metadata_network = 有効

新しい行を追加する

dhcp_domain = テスト.localdomain

元のコメントを開き、外部ネットワークのDNSアドレスに変更します

dnsmasq_dns_servers = 192.168.111.2

この行はコメントアウトされています

dnsmasq_lease_max = 16777216

この行はコメントアウトされています

可用性ゾーン = nova

上記の変更を行った後、サービスを再起動します。

systemctl を再起動します。neutron-ovs-cleanup.service、neutron-openvswitch-agent.service、neutron-metering-agent.service、neutron-metadata-agent.service、neutron-lbaasv2-agent.service、neutron-l3-agent.service、neutron-dhcp-agent.service

CentOS ベースの OpenStack 環境の展開 (OpenStack のインストール) に関する記事はこれで終了です。CentOS ベースの OpenStack 環境の展開についてさらに詳しく知りたい方は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • OpenStack クラウドコンピューティング クイックスタートチュートリアル (1) OpenStack とそのコンポーネントの紹介
  • OpenStack Keystoneの基本概念の簡単な紹介
  • Openstack コンポーネントのデプロイメントの詳細説明 - 概要と環境の事前準備
  • Openstack クラウド コンピューティング コンポーネントの概要と展開および操作手順

<<:  MySQL バックアップ スクリプトの書き方

>>:  jQueryは従業員情報の追加と削除の機能を実装します

推薦する

Docker に MySQL と MariaDB をインストールする方法

MySQLとMariaDBの関係MariaDB データベース管理システムは MySQL のブランチで...

CSSで検索ボックスを非表示にする機能を実装します(アニメーション順方向と逆方向のシーケンス)

上部のメニュー バーに検索ボックスを配置するのは一般的なシナリオですが、検索機能がそれほど頻繁に使用...

知らないかもしれない奇妙で興味深いDockerコマンド

はじめに使えるかもしれないが、あまり使われていない、シンプルで実用的なDockerコマンドをいくつか...

Linuxでディスクをマウントする方法

仮想マシンを使用しているときに、ディスク容量が不足し、継続使用するためにディスクをマウントする必要が...

dubbo での Zookeeper リクエストのタイムアウト問題: mysql8.0.15 に接続する mybatis+spring の構成

ここ2日間Javaを復習するつもりなので、練習にdubboを使ってショッピングモールプロジェクトを書...

MySQL 8.0 の binlog の詳細な説明

1 はじめにバイナリ ログは、データを持つ、またはデータを変更する可能性がある SQL ステートメン...

Linux で大きなファイルの内容を消去または削除する 5 つの方法

Linux ターミナルでファイルを操作しているときに、Linux コマンドライン エディターでファイ...

アリババの中秋節ロゴとウェブサイトのデザインプロセス

<br />まずアイデアを考え、次にスケッチを描き、次にマウスでスケッチし、最後にフラッ...

tomcat デプロイメント プロジェクトの実装と IDEA との統合

目次Tomcat でプロジェクトを展開する 3 つの方法プロジェクトをwebappsディレクトリに直...

CentOS7 で Jenkins+Maven+Git 継続的インテグレーション環境を構築する方法

この記事では、Spring boot + Maven プロジェクトのデプロイメントを例に、Code ...

MySQLの起動と接続方法の例分析

目次mysqldの起動方法方法 1: mysqld方法 2: mysqld_safe方法3: mys...

WeChatアプレットで数字当てゲームを実装する実際のプロセス

目次機能紹介レンダリング1. ホームページレンダリング用のコード(index03) 2. ゲーム開始...

Tomcat Nginx Redis セッション共有プロセス図

1. 準備ミドルウェア: Tomcat、Redis、Nginx Jar パッケージ: commons...

Vue の要素カレンダー コンポーネントを使用したサンプル コード

まず効果図を見てみましょう: 完全なコードは添付されています <テンプレート> <...

React Hooksの使用例

目次簡単なコンポーネントの例より複雑な親子コンポーネントのケースオンセレクトの書き方反応する子供Re...