多节点OpenStack Charms 部署指南0.0.1.dev223--8--配置 OpenStack

56 篇文章 4 订阅
56 篇文章 1 订阅

目录:
第一节 多节点OpenStack Charms 部署指南0.0.1.dev223–1--OpenStack Charms 部署指南
第二节 多节点OpenStack Charms 部署指南0.0.1.dev223–2-安装MAAS

第三节 多节点OpenStack Charms 部署指南0.0.1.dev223–3-安装Juju

第四节 多节点OpenStack Charms 部署指南0.0.1.dev223–4-安装openstack

第五节 多节点OpenStack Charms 部署指南0.0.1.dev223–5--使bundle安装openstack

第六节 多节点OpenStack Charms 部署指南0.0.1.dev223–6--配置vault和设置数字证书生命周期

第七节 多节点OpenStack Charms 部署指南0.0.1.dev223–7--juju 离线部署bundle

第八节 多节点OpenStack Charms 部署指南0.0.1.dev223–8--配置 OpenStack

附录 t 多节点OpenStack Charms 部署指南0.0.1.dev223–附录T–OpenStack 高可用性

第九节 多节点OpenStack Charms 部署指南0.0.1.dev223–9--网络拓扑

第十节 多节点OpenStack Charms 部署指南0.0.1.dev223–10–OpenStack 高可用基础架构实际

第十一节 多节点OpenStack Charms 部署指南0.0.1.dev223–11–访问Juju仪表板

第十二节 多节点OpenStack Charms 部署指南0.0.1.dev223–12–OpenStack 配置openstack失败后处理

第十三节 多节点OpenStack Charms 部署指南0.0.1.dev223–13–OpenStack配置高可用后无法登陆openstack dashboard

第十四节 多节点OpenStack Charms 部署指南0.0.1.dev223–14–ssh端口转发解决IDC机房国际线路不良问题

第十五节 多节点OpenStack Charms 部署指南0.0.1.dev299–15–OpenStack 实例高可用

第十六节 多节点OpenStack Charms 部署指南0.0.1.dev299–16–OpenStack基础架构高可用The easyrsa resource is missing. .

第十七节 多节点OpenStack Charms 部署指南0.0.1.dev303–17–修改实例数量等quota上限

第十八节 多节点OpenStack Charms 部署指南0.0.1.dev303–18–backup备份

第十九节 多节点OpenStack Charms 部署指南0.0.1.dev303–19–juju log

第二十节 多节点OpenStack Charms 部署指南0.0.1.dev303–20–控制器高可用性

第二十一节 多节点OpenStack Charms 部署指南0.0.1.dev303–21–控制器备份和还原

第二十二节 多节点OpenStack Charms 部署指南0.0.1.dev223–22-- Resource: res_masakari_haproxy not running

第二十三节 多节点OpenStack Charms 部署指南0.0.1.dev223–23-登录openstack-dashboad,SSLError(SSLCertVerificationError

第二十四节 多节点OpenStack Charms 部署指南0.0.1.dev223–24-Resource: res_masakari_f8b6bde_vip not running

第二十五节 多节点OpenStack Charms 部署指南0.0.1.dev223–25–rsyslog 日志服务器构建实际

第二十六节 多节点OpenStack Charms 部署指南0.0.1.dev223–26–跨model 建立关系构建rsyslog 日志服务器构建实际

第二十七节 多节点OpenStack Charms 部署指南0.0.1.dev223–27–Charm Hook

第二十八节 多节点OpenStack Charms 部署指南0.0.1.dev223–28–Command run

第三十节 多节点OpenStack Charms 部署指南0.0.1.–30–参考体系结构—Dell EMC硬件上的Canonical Charmed OpenStack(Ussuri)

第三十一节 多节点OpenStack Charms 部署指南0.0.1.–31–vm hosting-1

第三十二节 多节点OpenStack Charms 部署指南0.0.1.–32–vm hosting-2-VM host networking (snap/2.9/UI)

第三十三节 多节点OpenStack Charms 部署指南0.0.1.–33–vm hosting-3-Adding a VM host (snap/2.9/UI)

第三十四节 多节点OpenStack Charms 部署指南0.0.1.–34–vm hosting-4-VM host存储池和创建和删除vm (snap/2.9/UI)

第三十五节 多节点OpenStack Charms 部署指南0.0.1.–35–Command export-bundle备份opensack并重新部署openstack

第三十六节 多节点openstack charms 部署指南0.0.1-36-graylog实际-1

第三十七节 多节点openstack charms 部署指南0.0.1-37-graylog实际-2

第三十八节 多节点openstack charms 部署指南0.0.1-38-graylog实际-3

第三十九节 多节点openstack charms 部署指南0.0.1-39-graylog-4-filebeat

第四十节 多节点openstack charms 部署指南0.0.1-40-prometheus2

原文地址:
Configure OpenStack

概览

在上一节中,我们安装了 OpenStack。我们现在将配置 OpenStack 的目的是使它能够被普通用户使用。配置将由管理用户和非管理用户共同执行。

域、项目、用户和角色是 OpenStack 操作的重要组成部分。对于非管理员情况,我们将创建一个只有一个项目和一个用户的域。

此页面上的任务应该在安装 Juju 客户机的主机上执行。

安装 OpenStack 客户端

你需要 OpenStack 客户端来通过命令行管理你的云,现在就安装它们:

sudo snap install openstackclients --classic

创建管理员用户环境

无论如何,我们需要获得 OpenStack 的管理控制权,其中的关键部分是 Keystone 管理员密码。这是通过使用我们默认的 Juju管理权限来实现的。通常使用脚本来生成这个 OpenStack 管理环境。让这个脚本放在一个名为 openrc 的文件中,该文件的内容是:

OS_PARAMS=$(env | awk 'BEGIN {FS="="} /^OS_/ {print $1;}' | paste -sd ' ')
for param in $_OS_PARAMS; do
    if [ "$param" = "OS_AUTH_PROTOCOL" ]; then continue; fi
    if [ "$param" = "OS_CACERT" ]; then continue; fi
    unset $param
done
unset _OS_PARAMS

_keystone_ip=$(juju run $_juju_model_arg --unit keystone/leader 'unit-get private-address')
_password=$(juju run $_juju_model_arg --unit keystone/leader 'leader-get admin_passwd')

export OS_AUTH_URL=${OS_AUTH_PROTOCOL:-http}://${_keystone_ip}:5000/v3
export OS_USERNAME=admin
export OS_PASSWORD=${_password}
export OS_USER_DOMAIN_NAME=admin_domain
export OS_PROJECT_DOMAIN_NAME=admin_domain
export OS_PROJECT_NAME=admin
export OS_REGION_NAME=RegionOne
export OS_IDENTITY_API_VERSION=3
# Swift needs this:
export OS_AUTH_VERSION=3
# Gnocchi needs this
export OS_AUTH_TYPE=password

注意,这个文件的起源是 openstack-bundles 存储库

source这个文件成为管理员用户:(设置环境变量)

source openrc
echo $OS_USERNAME

最后一个命令的输出应该是 admin。

以用户“ admin”的身份执行操作

本节中的操作应以用户“ admin”的身份执行。

确认用户环境

确认管理环境设置正确的一种方法是查询云端点:

openstack endpoint list --interface admin

输出结果将类似于下面这个:

+----------------------------------+-----------+--------------+--------------+---------+-----------+----------------------------------------+
| ID                               | Region    | Service Name | Service Type | Enabled | Interface | URL                                    |
+----------------------------------+-----------+--------------+--------------+---------+-----------+----------------------------------------+
| 0515d09c36dd4fd991a1b2aa448eb3cb | RegionOne | neutron      | network      | True    | admin     | http://10.0.0.7:9696                   |
| 0abda66d8c414faea7e7485ea6e8ff80 | RegionOne | glance       | image        | True    | admin     | http://10.0.0.20:9292                  |
| 46599b147a2e4ff79513d8a4c6a37a83 | RegionOne | cinderv2     | volumev2     | True    | admin     | http://10.0.0.24:8776/v2/$(tenant_id)s |
| c046918276db46a7b9e0106d5102927f | RegionOne | cinderv3     | volumev3     | True    | admin     | http://10.0.0.24:8776/v3/$(tenant_id)s |
| c2a70ec99ec6417988e57f093ff4888d | RegionOne | keystone     | identity     | True    | admin     | http://10.0.0.29:35357/v3              |
| c79512b6f9774bb59f23b5b687ac286d | RegionOne | placement    | placement    | True    | admin     | http://10.0.0.11:8778                  |
| e8fbd499be904832b8ffa55fcb9c6efb | RegionOne | nova         | compute      | True    | admin     | http://10.0.0.10:8774/v2.1             |
+----------------------------------+-----------+--------------+--------------+---------+-----------+----------------------------------------+

如果端点不可见,那么可能是您的环境变量设置不正确。

创建一个映像和flavor风格
将引导映像导入到 Glance 中,以创建服务器实例。这里我们导入一个 Focal amd64映像,并称之为‘ Focal x8664’ :

curl http://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img | \
   openstack image create --public --container-format bare --disk-format qcow2 \
   --property architecture=x86_64 --property hw_disk_bus=virtio \
   --property hw_vif_model=virtio "focal x86_64"

注:建议更改为国内源:

curl http://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/focal/current/focal-server-cloudimg-amd64.img | \
   openstack image create --public --container-format bare --disk-format qcow2 \
   --property architecture=x86_64 --property hw_disk_bus=virtio \
   --property hw_vif_model=virtio "focal x86_64"

至少创建一种风格来定义新实例的硬件配置文件:

openstack flavor create --ram 512 --disk 4 m1.micro

以上风格是根据 Ubuntu 服务器的最低规范定义的,可以根据需要进行调整。

建立公共网络

创建外部公共网络,这里称为‘ Pub_net’。我们使用扁平flat网络提供商类型和它的提供商physnet1,这是在前一页的neutron网络步骤中建立的:

openstack network create Pub_Net --external --share --default \
   --provider-network-type flat --provider-physical-network physnet1

创建子网,这里称为‘ Pub_subnet’。使用的值基于本地环境。例如,回想一下我们的 MAAS 子网是“10.0.0.0/20” :

openstack subnet create Pub_Subnet --allocation-pool start=10.0.8.1,end=10.0.8.199 \
   --subnet-range 10.0.0.0/20 --no-dhcp --gateway 10.0.0.1 \
   --network Pub_Net

重要事项 公共子网分配池中的地址在 OpenStack 中管理,但它们也驻留在 MAAS 管理的子网上。重要的是告诉 MAAS永远不要使用这个地址范围。这是通过 MAAS 中的保留 IP 范围来完成的。

创建非管理用户环境
创建新的域、项目和用户。这里我们将分别使用‘ Domain1’、‘ Project1’和‘ User1’。系统将提示您提供新用户的密码。

openstack domain create Domain1
openstack project create --domain Domain1 Project1
openstack user create --domain Domain1 --project Project1 --password-prompt User1

测试结果样本:

User Password:********
Repeat User Password:********
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| default_project_id  | 2962d44b73db4e1d884498b8ce000a69 |
| domain_id           | 5080f063d9f84290a8233e16a0ff39a2 |
| enabled             | True                             |
| id                  | 1ea06b07c73149ca9c6753e07c30383a |
| name                | User1                            |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

注意输出。我们需要用户的 ID 来分配她的“成员”角色:

openstack role add --user 1ea06b07c73149ca9c6753e07c30383a \
   --project Project1 Member

为用户“ User1”创建一个 OpenStack 用户身份验证文件。我们所缺少的就是 Keystone URL,我们可以从当前的用户管理环境中获得:

echo $OS_AUTH_URL

这个例子的最后一个命令的输出是 http://10.0.0.23:5000/v3。
因此文件的内容,比如 Project1-rc,看起来是这样的(假设用户密码是‘ ubuntu’) :

export OS_AUTH_URL=http://10.0.0.23:5000/v3
export OS_USER_DOMAIN_NAME=Domain1
export OS_USERNAME=User1
export OS_PROJECT_DOMAIN_NAME=Domain1
export OS_PROJECT_NAME=Project1
export OS_PASSWORD=ubuntu

source文件成为非管理员用户:

source Project1-rc
echo $OS_USERNAME

最后一个命令的输出应该是 User1。

作为非管理员用户执行操作

执行云查询以确保用户环境正常运行:

openstack image list
+--------------------------------------+--------------+--------+
| ID                                   | Name         | Status |
+--------------------------------------+--------------+--------+
| 429f79c7-9ed9-4873-b6da-41580acd2d5f | focal x86_64 | active |
+--------------------------------------+--------------+--------+

应该返回先前由管理员用户导入的映像。

建立私人网络

为了获得访问任何已创建实例的固定 IP 地址,我们需要一个具有私有子网的项目特定网络。我们还需要一个路由器将这个网络链接到前面创建的公共网络。
非管理员用户现在创建一个名为“ Network1”的内部私有网络和一个名为“ Subnet1”的附带子网(DNS 服务器指向 MAAS 服务器在10.0.0.3) :

openstack network create Network1 --internal
openstack subnet create Subnet1 \
   --allocation-pool start=192.168.0.10,end=192.168.0.199 \
   --subnet-range 192.168.0.0/24 \
   --gateway 192.168.0.1 --dns-nameserver 10.0.0.3 \
   --network Network1

现在一个叫做 Router1的路由器被创建,添加到子网中,并被告知使用公共网络作为其外部网关网络:

openstack router create Router1
openstack router add subnet Router1 Subnet1
openstack router set Router1 --external-gateway Pub_Net

配置 SSH 和安全组

通过 SSH 访问实例。导入一个公共 SSH 密钥,以便在创建实例时可以引用它,然后将其安装到“ ubuntu”用户帐户中。可以使用现有的密钥,但是这里我们首先创建一个新的密钥对,称为“ User1-key” :

ssh-keygen -q -N '' -f ~/.ssh/User1-key
openstack keypair create --public-key ~/.ssh/User1-key.pub User1-key

需要将安全组配置为至少允许 SSH 通信流通过。您可以更改默认的组规则,或者使用自己的规则创建一个新的组。我们通过创建一个名为 Allow _ ssh 的组来实现后者:

openstack security group create --description 'Allow SSH' Allow_SSH
openstack security group rule create --proto tcp --dst-port 22 Allow_SSH

创建和访问一个实例

确定专用网络“ Network1”的网络 ID,然后创建一个名为“ focal-1”的实例:

NET_ID=$(openstack network list | grep Network1 | awk '{ print $2 }')
openstack server create --image 'focal x86_64' --flavor m1.micro \
   --key-name User1-key --security-group Allow_SSH --nic net-id=$NET_ID \
   focal-1

从公共网络“ Pub _ net”请求一个浮动 IP 地址并将其分配给一个变量:

FLOATING_IP=$(openstack floating ip create -f value -c floating_ip_address Pub_Net)

现在将这个浮动 IP 地址添加到新创建的实例“ focal-1” :

openstack server add floating ip focal-1 $FLOATING_IP

要求列出当前项目上下文中的所有实例(‘ Project1’) :

openstack server list

示例输出:

+--------------------------------------+---------+--------+-----------------------------------+---------------+----------+
| ID                                   | Name    | Status | Networks                          | Image         | Flavor   |
+--------------------------------------+---------+--------+-----------------------------------+---------------+----------+
| 9167b3e9-c653-43fc-858a-2d6f6da36daa | focal-1 | ACTIVE | Network1=192.168.0.131, 10.0.8.10 | focal x86_64 | m1.micro |
+--------------------------------------+---------+--------+-----------------------------------+---------------+----------+

列出的第一个地址在专用网络中,第二个地址在公用网络中:
你可以通过下面的命令来监视实例的引导:

openstack console log show focal-1

当输出包含以下内容时,实例就绪:

.
.
.
Ubuntu 20.04.1 LTS focal-1 ttyS0

focal-1 login:og show focal-1

您可以通过以下方式连接到实例:

ssh -i ~/.ssh/User1-key ubuntu@$FLOATING_IP

下一步

你现在有了一个由 maas 支持的 Juju 管理的功能性 OpenStack 云,并且已经到达了 Charms 部署指南的末尾。

正如我们使用 MAAS 作为 Juju 的备份云一样,一个可选的目标是对新的 OpenStack 云做同样的事情。也就是说,您可以将 OpenStack 云添加到 Juju 中,添加一组凭证,创建一个 Juju 控制器,然后继续部署魅力。由此产生的 Juju 机器将作为 OpenStack 实例运行!参见 Juju 文档中的用Juju来使用 OpenStack 来获得指导。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值