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

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

参考文档:
VM host networking (snap/2.9/UI)

Linux 中将用户添加到组的指令

如何在 Ubuntu 20.04 上安装 KVM

为了在您的MAAS网络中部署VM主机,您首先需要设置一个桥接器,以在您的VM主机和MAAS本身之间进行连接。本节说明完成此操作的几种方法。

您可能有五个问题:

  1. 如何通过Web UI设置VM主机桥?
  2. 如何使用netplan设置VM主机桥?
  3. 如何使用libvirt设置VM主机桥?
  4. 如何设置供libvirt使用的SSH?
  5. 如何使LXD可用于托管?

LXD在初始化过程中架起了一座桥梁。请注意,您将必须执行几个附加步骤来防止LXD提供DHCP,这会干扰MAAS的正常运行。您需要了解的所有内容均在初始化链接中进行了描述。

要启用VM主机网络功能,MAAS必须将潜在VM主机的VM主机IP地址与已知设备(机器或控制器)进行匹配。例如,如果将MAAS未知的计算机设置为VM主机,则增强的接口选择功能将不可用。

如果不同的控制器使用不同的IP地址解析同一域名,则必须强制使用IP地址以避免域名冲突。您还应该避免在运行多个控制器时使用127.0.0.1,因为这会使MAAS感到困惑。

使用MAAS UI设置VM主机桥

您可以使用MAAS UI配置桥接以将VM主机连接到MAAS:

选择要用作VM主机的计算机,切换到“network”选项卡。选择您要在其中创建网桥的网络,然后单击“create bridge:”

在这里插入图片描述
在子网MAAS控件上配置网桥。您可以将任何IP模式用于网桥:

在这里插入图片描述
完成后,它应该看起来像这样:
在这里插入图片描述
然后你可以部署ubuntu了。

使用netplan配置网桥

您还可以使用netplan配置VM主机桥:

打开您的netplan配置文件。这应该在/etc/netplan中。它可能被称为50-cloud-init.yaml,netplan.yaml或其他名称。修改文件以添加网桥,使用以下示例指导您:

network:
    bridges:
        br0:
            addresses:
            - 10.0.0.101/24
            gateway4: 10.0.0.1
            interfaces:
            - enp1s0
            macaddress: 52:54:00:39:9d:f9
            mtu: 1500
            nameservers:
                addresses:
                - 10.0.0.2
                search:
                - maas
            parameters:
                forward-delay: 15
                stp: false
    ethernets:
        enp1s0:
            match:
                macaddress: 52:54:00:39:9d:f9
            mtu: 1500
            set-name: enp1s0
        enp2s0:
            match:
                macaddress: 52:54:00:df:87:ac
            mtu: 1500
            set-name: enp2s0
        enp3s0:
            match:
                macaddress: 52:54:00:a7:ac:46
            mtu: 1500
            set-name: enp3s0
    version: 2

使用netplan apply来应用新配置。

使用libvirt配置网桥

也可以使用libvirt配置虚拟网桥。此方法也适用于在Ubuntu上运行的LXD VM主机。请注意,如果要在Ubuntu以外的其他操作系统上配置LXD,则可能需要其他方法。

默认情况下,libvirt创建一个虚拟网桥virbr0,VM之间通过虚拟网桥相互通信。 libvirt提供的DHCP自动为每个VM分配IP地址。但是,要在MAAS中启用网络启动,您需要在MAAS中提供DHCP,并且可以:

  1. 在libvirt的默认网络上禁用DHCP,
  2. 或者 在禁用DHCP的情况下创建一个新的libvirt网络maas

您可以像这样建立一个maas网络:

cat << EOF > maas.xml
<network>
 <name>maas</name>
 <forward mode='nat'>
   <nat>
     <port start='1024' end='65535'/>
   </nat>
 </forward>
 <dns enable="no" />
 <bridge name='virbr1' stp='off' delay='0'/>
 <domain name='testnet'/>
 <ip address='172.16.99.1' netmask='255.255.255.0'>
 </ip>
</network>
EOF
virsh net-define maas.xml

请注意,该网络还启用了NAT端口转发,以允许VM与Internet进行整体通信。端口转发在测试环境中非常有用。

设置ssh

为了使MAAS与VM主机上的libvirt成功通信(无论是从snap或软件包运行,还是在LXD容器中或本地主机上运行机架控制器),此示例命令必须在每个机架控制器上都成功:

virsh -c qemu+ssh://$USER@$VM_HOST_IP/system list --all

在这里, U S E R 是 您 的 V M 主 机 上 的 用 户 , 该 用 户 是 V M 主 机 上 l i b v i r t d U n i x 组 的 成 员 , 而 USER是您的VM主机上的用户,该用户是VM主机上libvirtd Unix组的成员,而 USERVMVMlibvirtdUnixVM_HOST_IP是您的VM主机的IP。请注意,对于 U S E R 的 权 限 不 足 , 可 能 会 导 致 v i r s h 命 令 失 败 , 并 显 示 诸 如 无 法 连 接 到 管 理 程 序 的 错 误 。 检 查 USER的权限不足,可能会导致virsh命令失败,并显示诸如无法连接到管理程序的错误。检查 USERvirshUSER组成员身份,以确保$USER是libvirtd组的成员。

设置SSH(仅限libvirt)

如果通过snap安装了MAAS,则可以通过以下方式创建所需的SSH密钥:

sudo mkdir -p /var/snap/maas/current/root/.ssh
cd /var/snap/maas/current/root/.ssh
sudo ssh-keygen -f id_rsa

最后,您需要将id_rsa.pub添加到/home//.ssh/中的authorized_keys文件中,其中是您的VM主机用户名。

使LXD可用于VM hosting

假设要使用LXD VM主机,则需要安装正确版本的LXD。在Ubuntu 20.04发行之前,LXD是使用Debian软件包安装的。 LXD的Debian打包版本太旧,无法与MAAS一起使用。在这种情况下,您需要删除LXD Debian软件包并安装Snap版本。请注意,您无法同时安装Debian和snap版本,因为这会产生冲突。

删除旧版本的LXD

如果您使用的Ubuntu版本低于20.04,或者您的Debian版本为LXD,请使用以下命令启动卸载过程:

sudo apt-get purge -y *lxd* *lxc*

此命令应导致输出类似如下所示:

Reading package lists... Done
Building dependency tree      
Reading state information... Done
Note, selecting 'lxde-core' for glob '*lxd*'
Note, selecting 'python-pylxd-doc' for glob '*lxd*'
Note, selecting 'python3-pylxd' for glob '*lxd*'
Note, selecting 'python-nova-lxd' for glob '*lxd*'
Note, selecting 'lxde-common' for glob '*lxd*'
Note, selecting 'lxde-icon-theme' for glob '*lxd*'
Note, selecting 'lxde-settings-daemon' for glob '*lxd*'
Note, selecting 'lxde' for glob '*lxd*'
Note, selecting 'lxdm' for glob '*lxd*'
Note, selecting 'lxd' for glob '*lxd*'
Note, selecting 'lxd-tools' for glob '*lxd*'
Note, selecting 'python-pylxd' for glob '*lxd*'
Note, selecting 'lxdm-dbg' for glob '*lxd*'
Note, selecting 'lxde-session' for glob '*lxd*'
Note, selecting 'nova-compute-lxd' for glob '*lxd*'
Note, selecting 'openbox-lxde-session' for glob '*lxd*'
Note, selecting 'python-nova.lxd' for glob '*lxd*'
Note, selecting 'lxd-client' for glob '*lxd*'
Note, selecting 'openbox-lxde-session' instead of 'lxde-session'
Note, selecting 'lxctl' for glob '*lxc*'
Note, selecting 'lxc-common' for glob '*lxc*'
Note, selecting 'python3-lxc' for glob '*lxc*'
Note, selecting 'libclxclient-dev' for glob '*lxc*'
Note, selecting 'lxc-templates' for glob '*lxc*'
Note, selecting 'lxc1' for glob '*lxc*'
Note, selecting 'lxc-dev' for glob '*lxc*'
Note, selecting 'lxc' for glob '*lxc*'
Note, selecting 'liblxc1' for glob '*lxc*'
Note, selecting 'lxc-utils' for glob '*lxc*'
Note, selecting 'vagrant-lxc' for glob '*lxc*'
Note, selecting 'libclxclient3' for glob '*lxc*'
Note, selecting 'liblxc-dev' for glob '*lxc*'
Note, selecting 'nova-compute-lxc' for glob '*lxc*'
Note, selecting 'python-lxc' for glob '*lxc*'
Note, selecting 'liblxc-common' for glob '*lxc*'
Note, selecting 'golang-gopkg-lxc-go-lxc.v2-dev' for glob '*lxc*'
Note, selecting 'lxcfs' for glob '*lxc*'
Note, selecting 'liblxc-common' instead of 'lxc-common'
Package 'golang-gopkg-lxc-go-lxc.v2-dev' is not installed, so not removed
Package 'libclxclient-dev' is not installed, so not removed
Package 'libclxclient3' is not installed, so not removed
Package 'lxc-templates' is not installed, so not removed
Package 'lxctl' is not installed, so not removed
Package 'lxde' is not installed, so not removed
Package 'lxde-common' is not installed, so not removed
Package 'lxde-core' is not installed, so not removed
Package 'lxde-icon-theme' is not installed, so not removed
Package 'lxde-settings-daemon' is not installed, so not removed
Package 'lxdm' is not installed, so not removed
Package 'lxdm-dbg' is not installed, so not removed
Package 'openbox-lxde-session' is not installed, so not removed
Package 'python-lxc' is not installed, so not removed
Package 'python3-lxc' is not installed, so not removed
Package 'vagrant-lxc' is not installed, so not removed
Package 'liblxc-dev' is not installed, so not removed
Package 'lxc-dev' is not installed, so not removed
Package 'nova-compute-lxc' is not installed, so not removed
Package 'nova-compute-lxd' is not installed, so not removed
Package 'python-nova-lxd' is not installed, so not removed
Package 'python-pylxd' is not installed, so not removed
Package 'python-pylxd-doc' is not installed, so not removed
Package 'lxc' is not installed, so not removed
Package 'lxc-utils' is not installed, so not removed
Package 'lxc1' is not installed, so not removed
Package 'lxd-tools' is not installed, so not removed
Package 'python-nova.lxd' is not installed, so not removed
Package 'python3-pylxd' is not installed, so not removed
The following packages were automatically installed and are no longer required:
  dns-root-data dnsmasq-base ebtables libuv1 uidmap xdelta3
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  liblxc-common* liblxc1* lxcfs* lxd* lxd-client*
0 upgraded, 0 newly installed, 5 to remove and 21 not upgraded.
pAfter this operation, 34.1 MB disk space will be freed.
(Reading database ... 67032 files and directories currently installed.)
Removing lxd (3.0.3-0ubuntu1~18.04.1) ...
Removing lxd dnsmasq configuration
Removing lxcfs (3.0.3-0ubuntu1~18.04.2) ...
Removing lxd-client (3.0.3-0ubuntu1~18.04.1) ...
Removing liblxc-common (3.0.3-0ubuntu1~18.04.1) ...
Removing liblxc1 (3.0.3-0ubuntu1~18.04.1) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for libc-bin (2.27-3ubuntu1) ...
(Reading database ... 66786 files and directories currently installed.)
Purging configuration files for liblxc-common (3.0.3-0ubuntu1~18.04.1) ...
Purging configuration files for lxd (3.0.3-0ubuntu1~18.04.1) ...
Purging configuration files for lxcfs (3.0.3-0ubuntu1~18.04.2) ...
Processing triggers for systemd (237-3ubuntu10.40) ...
Processing triggers for ureadahead (0.100.0-21) ...

您还应该自动删除LXD不再需要的软件包:

sudo apt-get autoremove -y

该命令的输出应类似于:

Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following packages will be REMOVED:
  dns-root-data dnsmasq-base ebtables libuv1 uidmap xdelta3
0 upgraded, 0 newly installed, 6 to remove and 21 not upgraded.
After this operation, 1860 kB disk space will be freed.
(Reading database ... 66769 files and directories currently installed.)
Removing dns-root-data (2018013001) ...
Removing dnsmasq-base (2.79-1) ...
Removing ebtables (2.0.10.4-3.5ubuntu2.18.04.3) ...
Removing libuv1:amd64 (1.18.0-3) ...
Removing uidmap (1:4.5-1ubuntu2) ...
Removing xdelta3 (3.0.11-dfsg-1ubuntu1) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for libc-bin (2.27-3ubuntu1) ...

现在可以从 Snap安装lxd了:

sudo snap install lxd
2020-05-20T22:02:57Z INFO Waiting for restart...
lxd 4.1 from Canonical✓ installed

更新 LXD 在20.04上

如果您使用的是20.04或更高版本,则默认情况下应安装LXD,但是最好确保它是最新的:

sudo snap refresh
All snaps up to date.

使用前初始化LXD

一旦安装了LXD,则需要在首次使用之前使用lxd init对其进行配置:

sudo lxd init

您的交互式输出应类似于以下内容。请注意有关这些问题的几点要点:

  1. Would you like to use LXD clustering? (yes/no) [default=no]: no - MAAS当前不支持LXD群集。
  2. Name of the storage back-end to use (btrfs, dir, lvm, zfs, ceph) [default=zfs]: dir - 测试主要是通过dir进行的;其他选项应该可以使用,但是测试工作量较少,因此使用后果自负。
  3. Would you like to connect to a MAAS server? (yes/no) [default=no]: no - 当LXD连接到MAAS容器时,由LXD创建的虚拟机将作为设备自动添加到MAAS。该功能应该可以使用,但是到目前为止测试还很有限。
  4. Would you like to configure LXD to use an existing bridge or host interface? (yes/no) [default=no]: yes - LXD创建的网桥是隔离的,不由MAAS管理。如果使用此网桥,则可以添加LXD VM主机并组成虚拟机,但是使用该网络的调试,部署和任何其他MAAS操作将失败–因此,这里的正确答案是正确的。
  5. Name of the existing bridge or host interface: br0 - br0是用户配置的网桥的名称(请参见上文),该网桥连接到MAAS管理的网络。
  6. Trust password for new clients: - 这是用户与MAAS连接时将输入的密码。
Would you like to use LXD clustering? (yes/no) [default=no]: no
Do you want to configure a new storage pool? (yes/no) [default=yes]: yes
Name of the new storage pool [default=default]:  
Name of the storage back-end to use (btrfs, dir, lvm, zfs, ceph) [default=zfs]: dir
Would you like to connect to a MAAS server? (yes/no) [default=no]: no
Would you like to create a new local network bridge? (yes/no) [default=yes]: no
Would you like to configure LXD to use an existing bridge or host interface? (yes/no) [default=no]: yes
Name of the existing bridge or host interface: br0
Would you like LXD to be available over the network? (yes/no) [default=no]: yes
pAddress to bind LXD to (not including port) [default=all]:
Port to bind LXD to [default=8443]:
Trust password for new clients:
Again:
Would you like stale cached images to be updated automatically? (yes/no) [default=yes]
Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]:

初始化LXD之后,您还需要确保LXD不会尝试为新的本地网络桥提供DHCP。您可以使用以下命令进行检查:

lxc network show lxdbr0

如果您不接受默认的网桥名称(lxdbr0),请在上面的命令中用您的名称替换新的网桥。这将产生如下输出

config:
  dns.mode: managed
  ipv4.address: 10.146.214.1/24
  ipv4.dhcp: "true"
  ipv4.nat: "true"
  ipv6.address: fd42:c560:ee59:bb2::1/64
  ipv6.dhcp: "true"
  ipv6.nat: "true"
description: ""
name: lxdbr0
type: bridge
used_by:
- /1.0/profiles/default
managed: true
status: Created
locations:
- none

这里有关于可能的设置的快速教程。为简单起见,要关闭LXD提供的DHCP,您需要更改三个设置,如下所示:

lxc network set lxdbr0 dns.mode=none
lxc network set lxdbr0 ipv4.dhcp=false
lxc network set lxdbr0 ipv6.dhcp=false

您可以通过重复show命令来检查工作:

lxc network show lxdbr0
config:
  dns.mode: none
  ipv4.address: 10.146.214.1/24
  ipv4.dhcp: "false"
  ipv4.nat: "true"
  ipv6.address: fd42:c560:ee59:bb2::1/64
  ipv6.dhcp: "false"
  ipv6.nat: "true"
description: ""
name: lxdbr0
type: bridge
used_by:
- /1.0/profiles/default
managed: true
status: Created
locations:
- none

完成此操作后,即可将LXD主机作为LXD VM主机添加到MAAS。添加VM主机后,将刷新其自身的调试信息。

当用LXD组成虚拟机时,MAAS使用“ maas” LXD配置文件或(如果不存在)“默认” LXD配置文件。该配置文件用于确定使用哪个网桥。用户还可以向配置文件添加MAS尚不支持的其他LXD选项。


以下是实际操作:

设置ssh 时需要注意:

根据上文设置ssh部分,首先确认ubuntu用户是否在libvirtd组如下:

在本文中,在10.0.0.157vm host 上,用户为ubuntu。
#从10.0.0.3ssh到10.0.0.157,用户为ubuntu。
#变更用户为root
#检查是否存在 libvirtd组

ssh ubuntu@10.0.0.157  
sudo  su - root
grep libvirtd /etc/group  

输出类似于:

 libvirtd:x:1124:

如何没有输出,则需要创建用户组 libvirtd
#创建用户组 libvirtd
#增加用户ubuntu到libvirtd组
#为确保已经将该用户正确的添加到libvirtd用户组中,可以查看该用户的属性,使用 id 命令

groupadd  libvirtd 

usermod -a -G libvirtd ubuntu

id ubuntu 

输出类似于:

uid=1122(ubuntu) gid=1125(ubuntu) groups=1125(ubuntu),1124(libvirtd)

经过以上设置,在执行时

virsh -c qemu+ssh://$USER@$VM_HOST_IP/system list --all

输出类似:

Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory

安装kvm组件

经过查找,发现本说明书中没有提到安装以下kvm组件,需要在vm host上进行如下安装:

查看cpu是否支持虚拟化

grep -Eoc '(vmx|svm)' /proc/cpuinfo

升级并安装kvm-ok工具检查bios是否禁止cpu虚拟化

sudo apt update
sudo apt install cpu-checker
kvm-ok

Ubuntu 20.04 上安装 KVM

sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager
  • qemu-kvm - 为 KVM 管理程序提供硬件模拟的软件程序
  • libvirt-daemon-system - 将 libvir 守护程序作为系统服务运行的配置文件
  • libvirt-clients - 用来管理虚拟化平台的软件
  • bridge-utils - 用来配置网络桥接的命令行工具
  • virtinst - 用来创建虚拟机的命令行工具
  • virt-manager - 提供一个易用的图形界面,并且通过libvirt 支持用于管理虚拟机的命令行工具

一旦软件包被安装好,libvirt 守护程序将会自动启动。你可以通过运行下面的命令,验证它:

sudo systemctl is-active libvirtd

输出:

active
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值