【部署篇】基于 Aliyun 虚拟机 Allinone 部署 Cloudpods 搭建多云管理平台

387 阅读8分钟

参考官方文档:www.cloudpods.org/zh/docs/qui…

第一步 创建阿里云的虚拟机

  • 镜像:CentOS 7.9 64位
  • 大小:8核16GB
  • 系统盘:ESSD云盘 40GiB
  • 数据盘:ESSD云盘 500GiB
  • 公网带宽:10Mbps
  • 安全组:入方向放通22、443、80

详细配置如下图所示:

image.png

第二步 格式化数据盘,并且挂载到 /opt

[root@iZ0jl10fhzj8uyn1mjtfijZ ~]# fdisk -l

Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000b9530

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    83886046    41941999+  83  Linux

Disk /dev/vdb: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

[root@iZ0jl10fhzj8uyn1mjtfijZ ~]# mkfs.ext4 /dev/vdb
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
6553600 inodes, 26214400 blocks
1310720 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2174746624
800 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done   

[root@iZ0jl10fhzj8uyn1mjtfijZ ~]# blkid
/dev/vda1: UUID="1789040a-8eae-4544-a9b0-9951abfea580" TYPE="ext4" 
/dev/vdb: UUID="ed6e8d1b-d1b4-44b0-af74-1303c9c77e84" TYPE="ext4" 
[root@iZ0jl10fhzj8uyn1mjtfijZ ~]# vim /etc/fstab 
[root@iZ0jl10fhzj8uyn1mjtfijZ ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Tue Jun 13 02:47:19 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=1789040a-8eae-4544-a9b0-9951abfea580 /                       ext4    defaults        1 1
UUID=ed6e8d1b-d1b4-44b0-af74-1303c9c77e84 /opt                    ext4    defaults        0 0
[root@iZ0jl10fhzj8uyn1mjtfijZ ~]# mount -a
[root@iZ0jl10fhzj8uyn1mjtfijZ ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        7.5G     0  7.5G   0% /dev
tmpfs           7.6G     0  7.6G   0% /dev/shm
tmpfs           7.6G  552K  7.6G   1% /run
tmpfs           7.6G     0  7.6G   0% /sys/fs/cgroup
/dev/vda1        40G  2.1G   36G   6% /
tmpfs           1.6G     0  1.6G   0% /run/user/0
/dev/vdb         99G   61M   94G   1% /opt
[root@iZ0jl10fhzj8uyn1mjtfijZ ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda    253:0    0   40G  0 disk 
`-vda1 253:1    0   40G  0 part /
vdb    253:16   0  100G  0 disk /opt

第三步 配置 SSH 免密登录

单机部署的话,也可以执行以下命令,可以避免输入 root 密码:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 
chmod 600 ~/.ssh/authorized_keys

以上不适用时,可以运行以下命令:

[root@iZ0jl10fhzj8uyn1mjtfijZ ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:X94VtNUdPKBpaci9IlW1p9urE9xuKKqKN1gtt0FkHno root@iZ0jl10fhzj8uyn1mjtfijZ
The key's randomart image is:
+---[RSA 2048]----+
|           ..ooo=|
|       +. + + oo=|
|      = .+ B . +.|
|     . E. o . o .|
|      +.S. .o.. .|
|     o +...o +oo |
|    o o o . ..=. |
|   ..o .   . o o.|
|   ...o.... ..+. |
+----[SHA256]-----+
[root@iZ0jl10fhzj8uyn1mjtfijZ ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.26.165.207  netmask 255.255.240.0  broadcast 172.26.175.255
        inet6 fe80::216:3eff:fe04:c23  prefixlen 64  scopeid 0x20<link>
        ether 00:16:3e:04:0c:23  txqueuelen 1000  (Ethernet)
        RX packets 48240  bytes 69393454 (66.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7193  bytes 775274 (757.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@iZ0jl10fhzj8uyn1mjtfijZ ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.26.165.207
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '172.26.165.207 (172.26.165.207)' can't be established.
ECDSA key fingerprint is SHA256:qdAmn5QOGkF2hR/nUzraGFEkF3Jwuo00joSM9Fts77A.
ECDSA key fingerprint is MD5:05:73:a7:08:21:ab:96:f8:3b:4b:10:c7:74:09:ac:d6.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@172.26.165.207's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@172.26.165.207'"
and check to make sure that only the key(s) you wanted were added.

[root@iZ0jl10fhzj8uyn1mjtfijZ ~]# ssh 'root@172.26.165.207' hostname
iZ0jl10fhzj8uyn1mjtfijZ

第四步 安装 ansible 和 git

安装 ansible 报错:UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 117: ordinal not in range(128) 解决办法请见文末安装过程中的问题

[root@iZ0jl10fhzj8uyn1mjtfijZ ~]# yum install -y epel-release git python3-pip
[root@iZ0jl10fhzj8uyn1mjtfijZ ~]# python3 -m pip install --upgrade pip setuptools wheel
[root@iZ0jl10fhzj8uyn1mjtfijZ ~]# python3 -m pip install --upgrade ansible

第五步 下载 ocboot 工具

git clone -b release/3.10 https://github.com/yunionio/ocboot && cd ./ocboot

第六步 部署

[root@iZ0jl10fhzj8uyn1mjtfijZ ocboot]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.26.165.207  netmask 255.255.240.0  broadcast 172.26.175.255
        inet6 fe80::216:3eff:fe04:c23  prefixlen 64  scopeid 0x20<link>
        ether 00:16:3e:04:0c:23  txqueuelen 1000  (Ethernet)
        RX packets 116606  bytes 169558354 (161.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12883  bytes 1808484 (1.7 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 129  bytes 26172 (25.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 129  bytes 26172 (25.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@iZ0jl10fhzj8uyn1mjtfijZ ocboot]# ./run.py 172.26.165.207

部署完成之后,系统就自动重启了。

第七步 登录系统

服务器重启之后,需要等 5 分钟左右,就可以访问了。

可以登录服务器看一下所有服务的启动状态。

[root@iZ0jl10fhzj8uyn1mjtfijZ ~]# kubectl get pods -n onecloud
NAME                                                READY   STATUS    RESTARTS   AGE
default-ansibleserver-85d747894c-5lxlc              1/1     Running   3          12m
default-apigateway-7bc7f655fc-lj84k                 1/1     Running   3          12m
default-apimap-5c97585488-k95d2                     1/1     Running   3          12m
default-climc-8bc77fbfc-8tmdm                       1/1     Running   1          8m48s
default-cloudevent-7555dddfc9-xts49                 1/1     Running   3          8m46s
default-cloudid-85b8f8b647-nc4fb                    1/1     Running   3          8m45s
default-cloudmon-6bc44ddb95-fkl7s                   1/1     Running   3          8m51s
default-cloudproxy-5c478c555f-89kbl                 1/1     Running   3          8m47s
default-devtool-6958b9d5c4-nvfj5                    1/1     Running   3          8m46s
default-esxi-agent-9d76f7d96-f75hs                  1/1     Running   3          12m
default-etcd-9248b8zrxt                             1/1     Running   0          2m37s
default-glance-5cc5dcf8ff-5qxns                     1/1     Running   1          12m
default-host-deployer-2bhwg                         1/1     Running   6          12m
default-influxdb-6ccd5f8db-vtq6t                    1/1     Running   1          13m
default-keystone-79c4f9d6f7-4fxmn                   1/1     Running   1          14m
default-kubeserver-6fd78cdcb-mw86c                  1/1     Running   3          12m
default-logger-76d6c76f69-w577x                     1/1     Running   1          8m45s
default-monitor-565d4b565c-dvspw                    1/1     Running   3          12m
default-notify-6f48d6fb6f-brqgb                     1/1     Running   1          8m46s
default-onecloud-service-operator-b649dccd9-vxp9s   1/1     Running   3          8m47s
default-ovn-north-7976cbf75f-h2dfv                  1/1     Running   1          12m
default-region-dns-ng5t6                            1/1     Running   1          12m
default-region-f644857d4-tfpbx                      1/1     Running   1          13m
default-scheduledtask-5fd9895d8c-r7fc7              1/1     Running   1          8m48s
default-scheduler-77f754d4db-mv2zj                  1/1     Running   3          12m
default-telegraf-5jbxl                              1/1     Running   1          13m
default-vpcagent-7c54c5476d-vdnqp                   1/1     Running   3          12m
default-web-74999fcb98-mchbk                        1/1     Running   8          12m
default-webconsole-7f8c65745b-gfpcc                 1/1     Running   3          8m46s
default-yunionconf-689d9c798-z24bs                  1/1     Running   3          8m46s
onecloud-operator-78bc8bb9b4-sqwsc                  1/1     Running   1          6m4s

因为我创建虚拟机的时候,就选择了放通 22、80、443 端口,所以可以直接访问,这一点注意一下,否则可能因为安全规则导致访问不了。

按照文档提示获取登录了登录信息。
web 地址:https://8.130.120.20/ (公有云上只能通过公网 IP 访问)
用户名:admin
用户密码:admin@123

image.png

输入用户名和密码后,进入系统:

image.png

可以正常访问页面,不过有提示,我登录系统之后,根据系统的提示,把内网IP设置成了公网IP,提示消失。

image.png

第八步 配置阿里云云账号以及对现有的资源进行操作

根据文档提示,获取到我自己的阿里云账号的 Access Key Id 和 Access Key Secret 然后填入表单,完成创建。

image.png

安装过程中的问题解决

安装 ansible 报错:UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 117: ordinal not in range(128)

解决办法:github.com/yunionio/cl…