TripleOはOpenStack上のOpenStackの略で、公式のOpenStackデプロイメントプロジェクトの1つです。 TripleOスタンドアロンシステムをインストールすることは、概念実証、ホームラボ、またはOpenStackで学習するための環境を作成するための優れた方法です。ただし、実稼働環境にはお勧めしません。
CentOS 8でTripleOを利用して、OpenStack Victoriaリリースのスタンドアロンデプロイメントを作成するために必要な手順を説明します。次に、仮想マシン(VM)を正常に起動して接続するために必要なコンポーネントを作成します。最後に、展開をクリーンアップするためのスクリプトを作成します。
展開前の構成
ホストマシン
このシナリオでは、ホストにRHEL8.2マシンを使用しました。 FedoraまたはCentOSの場合は手順を少し調整する必要があるかもしれません。
コックピットを利用してネットワークと仮想マシンを管理するには、サービスを開始して有効にしてから、cockpit-machines
をインストールします。 パッケージ:
sudo systemctl enable --now cockpit.socket
sudo yum install -y cockpit-machines
netfilter
かどうかを確認します モジュールがカーネルにロードされます:
sudo modprobe br_netfilter
IPv4 IP転送がまだロードされていない場合は、有効にします。
sudo nano /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl.conf
をリロードします 再起動せずに:
sudo sysctl -p /etc/sysctl.conf
[読者も楽しんだ:ソフトウェア定義ネットワークの使用を開始する]
ネットワーキング
始める前に、デフォルトネットワークに加えてスタンドアロンネットワークを作成します。新しいネットワークが管理ネットワークになります。以下を独自の環境に合わせて調整できます。
スタンドアロンネットワークを作成する
192.168.24.0 / 24を利用する スタンドアロンネットワークとして。まず、standalone.xml
を作成します ファイル:
sudo nano /tmp/standalone.xml
<network>
<name>standalone</name>
<forward mode='nat'>
<nat> <port start='1024' end='65535'/>
</nat>
</forward>
<ip address='192.168.24.0' netmask='255.255.255.0'>
</ip>
</network>
次に、virsh
を利用します 外部ネットワークを定義、有効化、および開始するには:
sudo virsh net-define /tmp/standalone.xml
sudo virsh net-autostart standalone
sudo virsh net-start standalone
スタンドアロンVMの作成
この展開ではベアメタルではなくVMを使用するため、スタンドアロン環境を展開するVMを作成する必要があります。
VMの仕様は次のとおりです。
- CentOS 8(バリアントrhel8.2)
- 60 GB
- 8 RAM
- 4つのCPU
- スタンドアロンネットワーク
スタンドアロンVMにCentOS8をインストールするときは、インストールしないでください。 libvirt-tools
最小限を使用します またはサーバー インストール。また、スタックを作成する必要があります ユーザー。
スタンドアロン構成
TripleOがスタンドアロンシステムとしてデプロイされると、パスワードを使用してVMにSSHで接続することはできなくなります。その準備をするには、SSHキーをスタックにコピーする必要があります ユーザー。コマンドは次のとおりです:
ssh-copy-id -i ~/.ssh/<your ssh key> stack@<standalone>
スタックを構成する必要があります NOPASSWDのユーザー sudo
で :
sudo echo "stack ALL=(root) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/stack
sudo chmod 0440 /etc/sudoers.d/stack
スタンドアロンマシンには、次のように設定できる完全修飾ドメイン名(FQDN)が必要です。
sudo hostnamectl set-hostname standalone.example.com
sudo hostnamectl set-hostname standalone.example.com --transient
システムを更新し、カーネルに変更があった場合は再起動します:
sudo yum update -y
sudo reboot
python-tripleo-repos
をダウンロードしてインストールします https://trunk.rdoproject.org/centos8/component/tripleo/current/からのRPM
sudo yum install -y https://trunk.rdoproject.org/centos8/component/tripleo/current/python3-tripleo-repos-<version>.el8.noarch.rpm
sudo -E tripleo-repos -b victoria current
sudo yum install -y python3-tripleoclient
構成と展開
スタンドアロン構成
スタンドアロン環境をデプロイする前に、いくつかの構成ファイルを作成する必要があります。
最初のファイルはcontainers-prepare-parameters.yaml
です。 ファイル。コンテナをプルするために使用されます。 TripleOクライアントを使用してベースファイルを作成します:
OpenStack tripleo container image prepare default --local-push-destination --output-env-file containers-prepare-parameters.yaml
次に、 push_destinationを更新します false と名前空間をプルする quay.ioから:
nano containers-prepare-parameters.yaml
push_destination: false
namespace: quay.io/tripleovictoria
次に、単一のNIC構成を使用してネットワーク設定を構成します。先に進む前に、スタンドアロンネットワークのインターフェースを決定する必要があります。 オンになっています。 インターフェースはまだ構成されていない可能性があるため、IPのないインターフェースになります。
ip addr
standalone_parameters.yaml
の構成中にパラメーターを再利用するには 次にインストールし、次のようにパラメータをバッファにエクスポートします。
export IP=192.168.24.2
export VIP=192.168.25.2
export NETMASK=24
export GATEWAY=192.168.24.1
export INTERFACE=<interface>
次に、standalone_parameters.yaml
を作成します cat:
を使用してファイルする
cat <<EOF > $HOME/standalone_parameters.yaml
parameter_defaults:
CloudName: $IP
# default gateway
ControlPlaneStaticRoutes:
- ip_netmask: 0.0.0.0/0
next_hop: $GATEWAY
default: true
Debug: true
DeploymentUser: $USER
DnsServers:
- 1.1.1.1
- 8.8.8.8
# needed for vip & pacemaker
KernelIpNonLocalBind: 1
DockerInsecureRegistryAddress:
- $IP:8787
NeutronPublicInterface: $INTERFACE
# domain name used by the host
CloudDomain: localdomain
NeutronDnsDomain: localdomain
# re-use ctlplane bridge for public net, defined in the standalone
# net config (do not change unless you know what you're doing)
NeutronBridgeMappings: datacentre:br-ctlplane
NeutronPhysicalBridge: br-ctlplane
# enable to force metadata for public net
#NeutronEnableForceMetadata: true
StandaloneEnableRoutedNetworks: false
StandaloneHomeDir: $HOME
InterfaceLocalMtu: 1500
# Needed if running in a VM, not needed if on baremetal
NovaComputeLibvirtType: qemu
EOF
これで、次のコマンドを使用してTripleOスタンドアロン環境をデプロイする準備が整いました。
sudo openstack tripleo deploy \
--templates \
--local-ip=$IP/$NETMASK \
--control-virtual-ip $VIP \
-e /usr/share/openstack-tripleo-heat-templates/environments/standalone/standalone-tripleo.yaml \
-r /usr/share/openstack-tripleo-heat-templates/roles/Standalone.yaml \
-e $HOME/containers-prepare-parameters.yaml \
-e $HOME/standalone_parameters.yaml \
--output-dir $HOME \
--standalone
インストールの確認
これで、OpenStackCLIを確認できます。
export OS_CLOUD=standalone
openstack endpoint list
フレーバー、イメージ、キーペア、セキュリティグループ、ネットワーク、サーバーの作成
スタンドアロン環境をインストールして検証したので、使用する準備が整いました。 myserverという名前の小さなインスタンスを作成します 、Cirrosとこれを実現するために必要なコンポーネントを実行します。開始する前に、デプロイメントにアクセスするようにコマンドラインを構成します。
export OS_CLOUD=standalone
フレーバー
これで、小さなを構成する準備が整いました。 使用しているフレーバーを確認してから、その作成を確認してください:
openstack flavor create --ram 512 --disk 1 --vcpu 1 --public tiny
openstack flavor list
画像
フレーバーができたので、Cirrosイメージをダウンロードして、 Glanceを構成します。 それを使用します。作成されたことを確認します:
wget https://download.cirros-cloud.net/0.5.0/cirros-0.5.0-x86_64-disk.img
openstack image create cirros --container-format bare --disk-format qcow2 --public --file cirros-0.5.0-x86_64-disk.img
openstack image list
キーペア
パスワードを入力せずにVMに接続するには、スタンドアロンシステムで新しいSSHキーを作成し、デフォルトという名前のキーペアとしてアップロードします。 作成されていることを確認します:
ssh-keygen
openstack keypair create --public-key ~/.ssh/id_rsa.pub default
openstack keypair list
セキュリティグループ
次のタスクは、基本というセキュリティグループを作成することです。 SSHとping
を許可するルールを使用 私たちのインスタンス:
openstack security group create basic
openstack security group rule create basic --protocol tcp --dst-port 22:22 --remote-ip 0.0.0.0/0
openstack security group rule create --protocol icmp basic
openstack security group rule create --protocol udp --dst-port 53:53 basic
openstack security group list
openstack security group show default
ネットワーク
ネットワークを作成する前に、スタンドアロンマシンと publicの次のパラメータをエクスポートします ネットワーク、プライベート ネットワーク、および作成するサブネット:
export GATEWAY=192.168.24.1
export STANDALONE_HOST=192.168.24.2
export PUBLIC_NETWORK_CIDR=192.168.24.0/24
export PRIVATE_NETWORK_CIDR=192.168.100.0/24
export PUBLIC_NET_START=192.168.24.4
export PUBLIC_NET_END=192.168.24.5
export DNS_SERVER=1.1.1.1
作成するパブリックネットワークは外部です データセンターを利用したネットワーク 物理ネットワーク:
openstack network create --external --provider-physical-network datacentre --provider-network-type flat public
openstack network list
ここで、内部を作成します プライベートという名前のネットワーク private-netというサブネットを構築します :
openstack network create --internal private
openstack network list
openstack subnet create public-net --subnet-range $PUBLIC_NETWORK_CIDR --no-dhcp --gateway $GATEWAY --allocation-pool start=$PUBLIC_NET_START,end=$PUBLIC_NET_END --network public
openstack subnet create private-net --subnet-range $PRIVATE_NETWORK_CIDR --network private
openstack subnet list
最後の手順は、 vrouterという名前のルーターを作成することです。 パブリックに接続します ネットワークだけでなく、 private-netに追加します サブネット:
openstack router create vrouter
openstack router list
openstack router set vrouter --external-gateway public
openstack router add subnet vrouter private-net
openstack router show vrouter
サーバー
これで、 myserverという名前のサーバーを作成する準備が整いました。 私たちが作成したフレーバー、画像、キーペア、プライベートネットワークを活用します:
openstack server create --flavor tiny --image cirros --key-name default --security-group basic --network private myserver
server show
を利用する ステータスに焦点を当てたコマンド サーバーがアクティブであるかどうかを判断する列 またはERROR :
openstack server show -c status myserver
サーバーに接続する前に、フローティングIPを作成してサーバーに追加する必要があります:
openstack floating ip create public
openstack server add floating ip myserver <IP>
インスタンスにキーペアを接続し、サーバーのセキュリティグループでSSHポートを開いたので、 cirrosとしてサーバーにSSHで接続できます。 テストするユーザー:
ssh cirros@<IP>
展開のクリーンアップ
環境をクリーンアップする必要がある場合は、スタンドアロン展開用にインストールされているサービスとファイルを削除します。これを行うには、standalone-cleanup.sh
というスクリプトを作成します :
cat <<EOF > $HOME/standalone-cleanup.sh
#!/bin/bash
echo "Tearing down TripleO environment"
if type pcs &> /dev/null; then
sudo pcs cluster destroy
fi
if type podman &> /dev/null; then
echo "Removing podman containers and images (takes times...)"
sudo podman rm -af
sudo podman rmi -af
fi
sudo rm -rf \
/var/lib/tripleo-config \
/var/lib/config-data /var/lib/container-config-scripts \
/var/lib/container-puppet \
/var/lib/heat-config \
/var/lib/image-serve \
/var/lib/containers \
/etc/systemd/system/tripleo* \
/var/lib/mysql/*
sudo systemctl daemon-reload
EOF
スクリプトを実行可能にします:
chmod u+x standalone-cleanup.sh
次のコマンドを使用して、クリーンアップを実行します。
./standalone-cleanup.sh
[この無料のチートシートでKubernetesの使用の基本を学びます。 ]
まとめ
TripleOは、ラボまたはデモンストレーション環境の作成に役立ちます。それを機能させるために注意しなければならないいくつかの落とし穴があります。この記事では、RHELベースの環境を使用してTripleOをデプロイ、構成、およびクリーンアップするために必要な手順について説明しました。