これはOpenStackのインストールに関する完全なチュートリアルです(最小限の設定)。 私は非常にオープンソースのクラウドOSを試してみたいと思います,そしてOpenStackは、深刻なソリューションの一つです,多くの機関や企業で使用されます. Cernはユーザーの中の1つであり、Red HatはOpenStackの強力な支持者です。
注意してください:この”アイロンをかけた”チュートリアルの後でさえ、すべてをセットアップした後にエラーが表示され、OpenStackを正常に動作させるために 私はいくつかのより多くの簡単なガイドで問題のいくつかについて書いていきます。
OpenStackはまた、インストールと保守が複雑で、あまり安定していないという評判を持っています。 私はOpenStackのトピックについて多くのことを読んで、多くのドキュメントを読んで、これが結果です。 これはTrain releaseの手動インストールをカバーし、この広範なシリーズは最小限のOpenStackインストールのすべてのコンポーネントをカバーします(この最小限の愚か者を
OpenStackの公式ドキュメントとデプロイメント自体にはいくつかの違いがあるため、このチュートリアルでは、間違いを探したり、エラーを解読したりする手順は面倒ですが、最後にOpenStackの基本原則をよく理解することができるので、非常にお勧めします。
主題についての詳細次回は、仕事に取り掛かろう。
学習曲線があり、私が読んだことから、OpenStackは現時点ではクラウドのニーズに安定したソリューションであると信じています。しかし、私たちは道に沿って表示されます、中に飛び込むことができます。
しかし、我々は途中で表示されます。
前提条件
インストールにCentOS7を使用します(v.1908)。 私はVMware Fusion/Workstationで私の研究室を作成します。 CentOSの初期インストールは、GUIまたは任意の追加なしで最小限です。私のすべてのVmには、4CPUコアと8GBのRAMがあり、最低120GBのハードドライブがあります。ここで最小要件を見つけることができます–https://docs.openstack.org/install-guide/overview.html
ネットワークおよびドライブコンポーネントからの追加要件について注意し、それに応じ私の研究室はインターネットにアクセスできます。
私の研究室はインターネッ私は道に沿ってOpenStackのドキュメントに従います–https://docs.openstack.org/install-guide/common/conventions.html
私は現在のものであるTrain buildをインストールします。 コントローラノード1と計算ノード1から始めます。10.0.0.1/24–ゲートウェイ
10.0.0.11/24–コントローラノード1
10.0.0.31/24–計算ノード1
10.0.0.41/24–ブロックストレージノード1
10.0.0.41/24-ブロックストレージノード1
10.0.0.41/24-ブロックストレージノード1
10.0.0.11/24-コントローラノード1
10.0.0.11/24-コントローラノード1
10.0.0.11/24-コントローラノード1
10.0.0.11/24-コントローラノード1
10.0.0.0…..51/24–オブジェクトストレージノード1
10.0.0.52/24-オブジェクトストレージノード2
後で、管理ネットワークになる203.0.113.0/24の範囲のネットワークを作成します。マシンの名前とIPアドレスも次のとおりです(hostsファイルにも必要です)。
10.0.0.11controller
10.0.0.31compute1
10.0.0.41block1
10.0.0.51object1
10.0.0.52object2
10.0.0.52object2
h3>マシンのホスト名を変更
ラボ内のすべてのマシンのホスト名を変更します。 ホスト名をこの上で指定した名前に変更します。
コマンドは、コントローラは、マシンの一つの名前で、あなたが合うものに変更し、以下のとおりです。
sudo hostnamectl set-hostname controller
ここでは、再起動後の変更が表示されます。私は自分のマシンに名前を付けました–コントローラ、compute1、block1、object1、object2。私の場合、インターフェイスifcfg-ens33があります
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
次の行を編集しました(コントローラマシンの例):
BOOTPROTO=noneIPADDR=10.0.0.11PREFIX=24GATEWAY=10.0.0.1DNS1=10.0.0.1DNS2=8.8.8.8ONBOOT=yesIPV6INIT=no
次の行を編集しました:
BOOTPROTO=noneIPADDR=10.0.0.11PREFIX=24GATEWAY=10.0.0.1DNS1=10.0.0.1DNS2=8.8.8.8ONBOOT=yesIPV6INIT=no
次の行を編集しました:
BOOTPROTO=noneIPADDR=10.0.0.11PREFIX=24GATEWAY=10.0.0.1DNS1=10.0.0.1DNS2=8.8.8.8ONBOOT=yesIPV6INIT=no
次の行を編集しました:
BOOTPROTO=noneIPADDR=10.0.0.11PREFIX=24GATEWAY=10.0.0.1DNS1=10.0.0.1DNS2=8.8.8.8ONBOOT=yesIPV6INIT=no
次の行を編集しました:
ここでは、それがどのように見えるかですのように
ip構成を設定した後、マシンを再起動します。 ラボ内のすべてのマシンでこれらの手順を繰り返します(もちろん、それぞれに異なるIPアドレスを設定します)。
Centosのインストールを更新
先に進む前に、CentOSのインストールを更新します。 このようにして、インターネット接続も確認します。
sudo yum update -y
ホストファイルを編集します
ここでも、各マシンでそれを行う必要があります。 マシンが名前でお互いを見ることができるように、hostsファイルを編集します。これは私が入力する必要があるものです
10.0.0.11 controller10.0.0.31 compute110.0.0.41 block110.0.0.51 object110.0.0.52 object2
ここで私のファイルはどのように見えるかです
動作します。これらの値をすべてのマシンのすべてのhostsファイルに入力し、各マシンにpingを実行し、すべてのマシンからテストできることを確認します。
セットアップNTPサービス
正確な時間測定が重要なので、タイムサーバーを設定し、それにクライアントを接続します。 タイムサーバーは私達のコントローラーサーバーおよび顧客他のすべての機械です。
NTPサーバの設定
これはコントローラサーバで行います。
sudo yum install chrony -y
実行してサービスを有効にして開始します
sudo systemctl start chronydsudo systemctl enable chronyd
実行してサービスのステータスを確認することもできます
systemctl status chronyd
次に、/etc/chronyを編集します。confファイル
sudo vi /etc/chrony.conf
このチュートリアルでは、デフォルトのcentos NTPサーバーを残します。 それ以外の場合は、NTPサーバーを編集する場合は、以下のコマンドを追加することができます(NTP_SERVERをNTPサーバー名に置き換えます)
server NTP_SERVER iburst
また、次の行のコメントを解除して編集することにより、ローカルネットワークからのNTPクライアントへのアクセスを有効にする必要があります
allow 10.0.0.0/24
ここに私の設定があります。 緑色の部分はNTPサーバーに入る場所であり、赤色の部分は時刻同期のためにローカルネットワークからのアクセスを有効にします。p>
サーバーまたはchronyサービスを再起動します。
sudo systemctl restart chronyd
サーバーが時間を同期しているかどうかを確認します。
サーバーが時間を同期しているかどうかを確認します。
sudo systemctl restart chronyd
サービスは私のために働きます。また、ファイアウォールを介して有効にします
sudo firewall-cmd --permanent --add-service=ntpsudo firewall-cmd --reload
NTPクライアントのセットアップ
これらの手順は、残りのマシンで行う必要があります。ここでも、chronyをインストールする必要があります。
sudo yum install chrony
NTPサービスを有効にして開始します。
sudo systemctl start chronydsudo systemctl enable chronyd
その後、再び/etc/chronyを編集する必すべてのNTPサーバーをすべて削除し、次のように入力する必要があります。
server controller iburst
すべてをそのままにして、ファイルを閉じま これは私のように見える方法です。もう一度、NTPサービスを再起動します。
sudo systemctl restart chronyd
それが動作するかどうかを確認します。
chronyc sources
div>
それは動作し、クライアントはntpサーバーと通信しています。そして、NTPサーバーでコマンドを入力すると、compute1がNTPクライアントであることがわかります。
chronyc clients
マシンの残りの部分。
OpenStackパッケージ
これらの手順はすべてのノードで実行する必要があります。 CentOSのインストールを更新していない場合は、EPEL Repoも無効にしてください。
!
!!!///RED HATインストールの場合のみ、CENTOSはこれをスキップします
subscription-manager repos --enable=rhel-7-server-optional-rpms \ --enable=rhel-7-server-extras-rpms --enable=rhel-7-server-rh-common-rpms
次のコマンドを実行します(列車リリースをインストールしています)
sudo yum install centos-release-openstack-train
次に実行するコマンドは
sudo yum upgrade
その後に再起動し、新しいカーネルを選択してアクティブにします。次のコマンドは次のようになります
sudo yum install python-openstackclient
そして最後に、OpenStackインストールをSELinuxに統合する必要があります
sudo yum install openstack-selinux
SQLデータベース
データベースがコントローラノードにインストールされます。MariaDBをインストールします。
sudo yum install mariadb mariadb-server python2-PyMySQL
インストールが完了したら、openstackを編集する必要があります。confは/etc/myにあります。cnf.次の情報を含むmysqldセクションを作成します(bind-addressがコントローラのアドレスであることを確認してください)
bind-address = 10.0.0.11default-storage-engine = innodbinnodb_file_per_table = onmax_connections = 4096collation-server = utf8_general_cicharacter-set-server = utf8
私の場合は次のようになります
mariadbを有効にして起動します
sudo systemctl enable mariadb.servicesudo systemctl start mariadb.service
ファイアウォール例外も追加します
sudo firewall-cmd --permanent --add-service=mysqlsudo firewall-cmd --reload
最後に、インストールを保護し、root sqlユーザーのパスワードを設定します
sudo mysql_secure_installation
メッセージキュー
openstackはメッセージキューを使用して次の操作を行います サービス間の操作とステータスを調整します。 それは通常コントローラーで動きます、従って私達はコントローラーにそれを取付けます。 RabbitMQをインストールします
インストール
sudo yum install rabbitmq-server
サービスを開始して有効にします
sudo systemctl enable rabbitmq-server.servicesudo systemctl start rabbitmq-server.service
openstackユーザーを追加します。 RABBIT_PASSをパスワードに置き換えます。p>
sudo rabbitmqctl add_user openstack RABBIT_PASS
許可を設定します
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
これらは、ファイアウォールの設定ですrabbitmq
sudo firewall-cmd --zone=public --permanent --add-port=4369/tcp --add-port=25672/tcp --add-port=5671-5672/tcp --add-port=15672/tcp --add-port=61613-61614/tcp --add-port=1883/tcp --add-port=8883/tcpsudo firewall-cmd --reload
オプションのselinuxコマンド
setsebool -P nis_enabled 1
memcached
サービスのidサービス認証メカニズムは、memcachedを使用してトークンをキャッ Memcachedサービスは通常、コントローラノード上で実行されるため、コントローラノードにインストールします。
Installation
sudo yum install memcached python-memcached
Next, we will edit /etc/sysconfig/memcached
sudo vi /etc/sysconfig/memcached
controller should be added to OPTIONS line, like this
OPTIONS="-l 127.0.0.1,::1,controller"
At last, we will enable and start service
sudo systemctl enable memcached.servicesudo systemctl start memcached.service
Optional firewall settings for memcached
sudo firewall-cmd --new-zone=memcached --permanentsudo firewall-cmd --zone=memcached --add-port=11211/udp --permanentsudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanentsudo firewall-cmd --zone=memcached --add-source=10.0.0.0/24 --permanentsudo firewall-cmd --reload
Etcd
Short explanation from docs.openstack.org-OpenStackサービスは、分散キーロック、設定の保存、サービスのライブネスの追跡、およびその他のシナリオのための分散信頼性の高いキー値ストアであるEtcdを使用
Etcdはコントローラノードにインストールする必要があります。次は/etc/etcd/etcdを編集します。conf
sudo vi /etc/etcd/etcd.conf
このようにファイルを編集し、コントローラのIPまたは名前に一致するように以下の値を変更する必要があります。これは私のファイルがどのように見えるかです
サービスを有効にして開始します
sudo systemctl enable etcdsudo systemctl start etcd
追加のファイアウォール設定
sudo firewall-cmd --add-port={2379,2380}/tcp --permanentsudo firewall-cmd --reload
だから、我々は多かれ少なかれ初期部分で”完了”されている、我々は今、列車のための最小限の展開を行う
電車のための最小限の展開
Ok、これまでのところ成功しました。 私たちは今、列車のための最小限のサービス展開を行うことになります。 詳細はここで見つけることができます–https://docs.openstack.org/install-guide/openstack-services.html
サービスは、以下に示すように、指定された順序でインストールする必要があります
このチュートリアルはすでに少し長くなっているので、私はここでそれを終了し、別々のチュートリアルでは、上記のサービスのそれぞれをカバーするつもりです。重要なことは、以下のようにすべてのサービスを正確な順序で実行することです。
ここにリンクがあります
- Identity service–Train用のkeystoneインストール
2. 画像サービス-電車のための一目インストール
3。 配置サービス-列車のための配置のインストール
4。 Compute service-Nova installation for Train
5. Networking service-neutron installation for Train
最小限のデプロイメントサービスをインストールした後、次のコンポーネントもインストールすることをお勧めします。
6. ダッシュボード-列車のための地平線のインストール
7。 ブロックストレージサービス-列車のための噴石のインストール
8。 Object Storage service – swift installation for Train
Additional links for after installation for errors you may encounter:
Disclaimer