在VirtualBox中创建CentOS并构建OpenStack(环境部分)

OpenStack 是什么?

・OpenStack项目是一个开源的云计算平台,支持各种类型的云环境。它的目标是实现简单的实施、大规模的可扩展性和丰富的功能。来自世界各地的云计算技术人员都在为该项目做出贡献。
・OpenStack通过组合各种互补服务提供基础设施即服务(IaaS)解决方案。每个服务都提供应用程序编程接口(API),以便可以轻松地进行协作。
・至少需要两个节点(主机),即控制节点和计算节点。
・每个节点至少需要两个网络接口。

引用自官方来源

構築方法としては一から手動で入れていく方法と、PackStackという一括でバッとやってくれる方法があります。

この記事では一から手動で入れていく方法を書いていきます。
PackStackについては以下あたりを参考に

https://www.rdoproject.org/install/quickstart/

http://blog.bit-isle.jp/bird/2014/11/527

基本的に公式のインストールガイドに沿ってやっていきます。

単純化のために、hogehoge_PASSみたいなのは統一(root++)
ずっとrootで操作していたので、root権限がいらないコマンドも# hogehogeと書いています。

虛擬機環境

    • Windows7(ホストOS)で動作させているVirtualBox上に立ち上げました。

http://docs.openstack.org/liberty/ja/install-guide-rdo/environment-networking.html の図を見ながらだとイメージつきやすいです。

図の左2つのノード(ゲストOS)を立ち上げる感じ。

网络

公共的 de)

    • 外と直接繋がるネットワーク

 

    • IP: 192.168.12.0/24

 

    ゲートウェイ: 192.168.12.1

管理

    • VirtualBoxのNAT経由で外と繋がるネットワーク

 

    • IP: 10.0.3.0/24

 

    ゲートウェイ: 10.0.3.1

节点(客户操作系统,虚拟机)

    ノードのネットワーク設定は、CentOSのインストール時に設定してしまってもいいし、/etc/sysconfig/networkscriptsで後で書いてもいい。

共通

    • user/pass = root/root++

 

    • OS: CentOS7

Memory: 8GB
Storage: 10GB
ネットワークインタフェースは2つ。設定は以下:

ブリッジアダプター

ホストOSのインタフェースと繋げて通信する。

NATネットワーク

ゲストOS同士の通信を可能にしつつ、VirtualBoxのNATを利用して外と通信する
VirtualBoxの環境設定->ネットワークでNATネットワークを作成し、上記の設定にした。

控制节点

    • OpenStackの脳ミソ的な役割をするノード。

 

    • PublicNetwork:

インタフェース: enp0s3
IP: 192.168.12.11
NetMask: 255.255.255.0
ゲートウェイ: 192.168.12.1
ネームサーバ: 8.8.8.8

ManagementNetwork:

インタフェース: enp0s8
IP: 10.0.3.11
NetMask: 255.255.255.0
ゲートウェイ: 10.0.3.1

hostname: controller.localdomain

计算节点

    • OpenStack内のインスタンスを動作させるノード。

 

    • PublicNetwork:

インタフェース: enp0s3
IP: 192.168.12.12
NetMask: 255.255.255.0
ゲートウェイ: 192.168.12.1
ネームサーバ: 8.8.8.8

ManagementNetwork:

インタフェース: enp0s8
IP: 10.0.3.12
NetMask: 255.255.255.0
ゲートウェイ: 10.0.3.1

hostname: compute.localdomain

安装后的处理

网络周围

/etc/sysconfig/network-script/ifcfg-xxxを編集

BOOTPROT=none
ONBOOT=yes
IPとかの指定が出来てなればそれも行う。

ネットワーク再起動

systemctl restart network
初回だけOSごと再起動したかも

ip addr show

IPとか確認

ping google.com

とかして外と繋がってるか+名前解決できてるか確認

周围的美味

    • yum update

yum install net-tools

お好みで。慣れ親しんだコマンドが使えるようになるやつ。

主持人周围

    • ホスト名の変更

$ hostname で確認できる

# vi /etc/sysconfig/networkを書き換えて再起動で変更できる

インストール時に名前を設定していたら今回は不要

ホスト入力

# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.12.11 controller controller.localdomain
192.168.12.12 compute compute.localdomain

ping compute でつながればOK

服务周围

NetworkManagerを停止

# systemctl stop NetworkManager
# systemctl disable NetworkManager

SELinuxを設定

# setenforce 0

# getenforce

permissiveであることを確認

# vi /etc/selinux/config で

SELINUX=permissive

开放堆栈

    ここから環境に従って、OpenStackに必要なサービスを入れていきます。

网络时间协议(NTP)

为了在节点之间正确同步服务,应安装实现NTP的Chrony。建议将控制节点配置为参考尽可能准确(较小的层级值)的服务器,并将其他节点配置为参考控制节点。

@控制节点

    • # yum install chrony

# vi /etc/chrony.conf

server ntp.nict.jp iburst を追加
allow 10.0.3.0/24

# systemctl enable chronyd

OS起動時に起動するようにして

# systemctl start chronyd

サービス起動

计算节点

    • # yum install chrony

# vi /etc/chrony.conf

server controller iburst

を追加し,残りのserver項目はすべてコメントアウト

allow 10.0.3.0/24

# systemctl enable chronyd

# systemctl start chronyd

验证

# chronyc sources

controllerなら,参照しているNTPサーバのアドレス
他のノードならcontrollerが表示される

打开堆栈软件包

    • 全てのノードで行う

# yum install centos-release-openstack-liberty

インスコ

# yum upgrade

パッケージをアップグレード

# yum install python-openstackclient

Openstackクライアントのインスコ

# yum install openstack-selinux

openstack用selinuxのインスコ

這個需求可以用SQL來實現。

大多数的OpenStack服务使用SQL数据库来存储信息。数据库通常在控制节点上运行。根据本指南的步骤,具体使用MariaDB或MySQL取决于所选择的发行版。OpenStack的服务还支持其他SQL数据库,如PostgreSQL。

    • コントローラノードにて行う

# yum install mariadb mariadb-server MySQL-python

インスコ

# vi /etc/my.cnf.d/mariadb_openstack.cnf

作成して以下を記入

[mysqld]

# 管理ネットワーク経由で他のノードによりアクセスできるようにする
bind-address = 10.0.3.11

# 有用なオプションとUTF-8文字セットを有効にする
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8
    • # systemctl enable mariadb

# systemctl start mariadb 起動設定

# /usr/bin/mysql_secure_installation

mysqlの設定を行う。

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): //enter
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] Y // rootパスワードの設定
New password:  // root++
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y  // アノニマスユーザの削除
... Success!

Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y  // rootユーザのリモートログインの禁止
... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y  // テストDBの削除
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y  // 権限の変更を再読み込みする
... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

# mysql -u root -p

root++を入力して操作ができることを確認

非关系型数据库

遥测服务使用NoSQL数据库来存储信息。该数据库通常在控制节点上运行。在本指南的步骤中,我们使用MongoDB。

    • コントローラノードで行う

# yum install mongodb-server mongodb

インスコ

# vi /etc/mongod.conf 以下の設定を記述

bind_ip = 10.0.3.11

コントローラノードのIPアドレスに変更

smallfiles = true

コメントアウトを解除 ジャーナルファイルのサイズを減らす

起動処理 (mongodをenableにしてstart)

消息队列

将客户的请求传递给适当的工作人员。任务完成后,将输出返回给客户端。
OpenStack使用消息队列来在服务之间进行操作和状态交换。消息队列服务通常在控制节点上运行。OpenStack支持RabbitMQ、Qpid、ZeroMQ等消息队列服务。然而,大多数提供OpenStack软件包的发行版只支持特定的消息队列服务。在本指南中,我们将介绍大多数发行版支持的RabbitMQ消息队列服务。如果你想要安装其他的消息队列服务,请参考相关文档。

    • コントローラノードで行う

 

    • # yum install rabbitmq-server

 

    • 起動処理 (rabbitmq-serverをenableにしてstart)

# rabbitmqctl add_user openstack RABBIT_PASS

openstackユーザとパスワードを追加
RABBIT_PASSにはroot++を入力

# rabbitmqctl set_permissions openstack “.*” “.*” “.*”

openstack ユーザーに対して、設定、書き込み、読み出しアクセスを許可する。

广告
将在 10 秒后关闭
bannerAds