9. 启动第一个openstack实例¶
0. 步骤¶
## 1.创建openstack网络
## 2.创建实例的硬件配置方案
## 3.创建密钥对
## 4.创建安全组规则
## 5.启动一个实例
1:创建网络(网络名+子网)¶
#controller
#1.创建网络oldboy
neutron net-create --shared --provider:physical_network provider --provider:network_type flat oldboy
#2.创建子网,注意修改成自己的网段及网关
neutron subnet-create --name oldgirl --allocation-pool start=192.168.178.101,end=192.168.178.250 \
--dns-nameserver 223.5.5.5 --gateway 192.168.178.254 \
oldboy 192.168.178.0/24
[root@controller ~]# #1.创建网络oldboy
[root@controller ~]# neutron net-create --shared --provider:physical_network provider --provider:network_type flat oldboy
Created a new network:
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | True |
| availability_zone_hints | |
| availability_zones | |
| created_at | 2021-12-03T02:56:17 |
| description | |
| id | 925db129-fab0-43c6-9503-5677188adf1f |
| ipv4_address_scope | |
| ipv6_address_scope | |
| mtu | 1500 |
| name | oldboy |
| port_security_enabled | True |
| provider:network_type | flat |
| provider:physical_network | provider |
| provider:segmentation_id | |
| router:external | False |
| shared | True |
| status | ACTIVE |
| subnets | |
| tags | |
| tenant_id | ddd5154c1a8e46a386f93acfe53c57fd |
| updated_at | 2021-12-03T02:56:17 |
+---------------------------+--------------------------------------+
[root@controller ~]#
[root@controller ~]# #2.创建子网,注意修改成自己的网段及网关
[root@controller ~]# neutron subnet-create --name oldgirl --allocation-pool start=192.168.178.101,end=192.168.178.250 \
> --dns-nameserver 223.5.5.5 --gateway 192.168.178.254 \
> oldboy 192.168.178.0/24
Created a new subnet:
+-------------------+--------------------------------------------------------+
| Field | Value |
+-------------------+--------------------------------------------------------+
| allocation_pools | {"start": "192.168.178.101", "end": "192.168.178.250"} |
| cidr | 192.168.178.0/24 |
| created_at | 2021-12-03T02:56:20 |
| description | |
| dns_nameservers | 223.5.5.5 |
| enable_dhcp | True |
| gateway_ip | 192.168.178.254 |
| host_routes | |
| id | 8356fc87-e72d-4e2a-81a8-be9270355279 |
| ip_version | 4 |
| ipv6_address_mode | |
| ipv6_ra_mode | |
| name | oldgirl |
| network_id | 925db129-fab0-43c6-9503-5677188adf1f |
| subnetpool_id | |
| tenant_id | ddd5154c1a8e46a386f93acfe53c57fd |
| updated_at | 2021-12-03T02:56:20 |
+-------------------+--------------------------------------------------------+
2:创建云主机的硬件配置方案¶
#1.查看默认的硬件配置方案
openstack flavor list
#2.创建新的配置方案
openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano
[root@controller ~]# #1.查看默认的硬件配置方案
[root@controller ~]# openstack flavor list
+----+-----------+-------+------+-----------+-------+-----------+
| ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public |
+----+-----------+-------+------+-----------+-------+-----------+
| 1 | m1.tiny | 512 | 1 | 0 | 1 | True |
| 2 | m1.small | 2048 | 20 | 0 | 1 | True |
| 3 | m1.medium | 4096 | 40 | 0 | 2 | True |
| 4 | m1.large | 8192 | 80 | 0 | 4 | True |
| 5 | m1.xlarge | 16384 | 160 | 0 | 8 | True |
+----+-----------+-------+------+-----------+-------+-----------+
[root@controller ~]#
[root@controller ~]# #2.创建新的配置方案
[root@controller ~]# openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano
+----------------------------+---------+
| Field | Value |
+----------------------------+---------+
| OS-FLV-DISABLED:disabled | False |
| OS-FLV-EXT-DATA:ephemeral | 0 |
| disk | 1 |
| id | 0 |
| name | m1.nano |
| os-flavor-access:is_public | True |
| ram | 64 |
| rxtx_factor | 1.0 |
| swap | |
| vcpus | 1 |
+----------------------------+---------+
[root@controller ~]#
[root@controller ~]# openstack flavor list
+----+-----------+-------+------+-----------+-------+-----------+
| ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public |
+----+-----------+-------+------+-----------+-------+-----------+
| 0 | m1.nano | 64 | 1 | 0 | 1 | True |
| 1 | m1.tiny | 512 | 1 | 0 | 1 | True |
| 2 | m1.small | 2048 | 20 | 0 | 1 | True |
| 3 | m1.medium | 4096 | 40 | 0 | 2 | True |
| 4 | m1.large | 8192 | 80 | 0 | 4 | True |
| 5 | m1.xlarge | 16384 | 160 | 0 | 8 | True |
+----+-----------+-------+------+-----------+-------+-----------+
3:创建密钥对¶
#1.生成密钥
ssh-keygen -q -N "" -f ~/.ssh/id_rsa
#2.创建密钥对 mykey
openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey
[root@controller ~]# #1.生成密钥
[root@controller ~]# ssh-keygen -q -N "" -f ~/.ssh/id_rsa
[root@controller ~]#
[root@controller ~]# #2.创建密钥对 mykey
[root@controller ~]# openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey
+-------------+-------------------------------------------------+
| Field | Value |
+-------------+-------------------------------------------------+
| fingerprint | 95:0f:6b:1e:77:72:2e:41:83:fc:e0:b1:06:9a:2c:17 |
| name | mykey |
| user_id | 9f43863f530b446c9c82e7f237d599fa |
+-------------+-------------------------------------------------+
4:创建安全组规则¶
#1.开启icmp
openstack security group rule create --proto icmp default
#2.开启22端口(有其他服务,则需要开启其他端口)
openstack security group rule create --proto tcp --dst-port 22 default
[root@controller ~]# #1.开启icmp
[root@controller ~]# openstack security group rule create --proto icmp default
+-----------------------+--------------------------------------+
| Field | Value |
+-----------------------+--------------------------------------+
| id | 1abb95b7-b801-4227-86d2-bbfeb72e0354 |
| ip_protocol | icmp |
| ip_range | 0.0.0.0/0 |
| parent_group_id | 7ed46c27-2bed-4ef7-b90c-272aa3d9f7dc |
| port_range | |
| remote_security_group | |
+-----------------------+--------------------------------------+
[root@controller ~]#
[root@controller ~]# #2.开启22端口(有其他服务,则需要开启其他端口)
[root@controller ~]# openstack security group rule create --proto tcp --dst-port 22 default
+-----------------------+--------------------------------------+
| Field | Value |
+-----------------------+--------------------------------------+
| id | 318de228-800f-4418-948b-c47ec2ffd59f |
| ip_protocol | tcp |
| ip_range | 0.0.0.0/0 |
| parent_group_id | 7ed46c27-2bed-4ef7-b90c-272aa3d9f7dc |
| port_range | 22:22 |
| remote_security_group | |
+-----------------------+--------------------------------------+
5:命令行启动一个实例:¶
#1.查看neutron的id
neutron net-list
# 得到id:925db129-fab0-43c6-9503-5677188adf1f
#2.修改net-id,然后启动实例!
openstack server create --flavor m1.nano --image cirros \
--nic net-id=925db129-fab0-43c6-9503-5677188adf1f --security-group default \
--key-name mykey oldboy
[root@controller ~]# neutron net-list
+--------------------------------------+--------+-------------------------------------------------------+
| id | name | subnets |
+--------------------------------------+--------+-------------------------------------------------------+
| 925db129-fab0-43c6-9503-5677188adf1f | oldboy | 8356fc87-e72d-4e2a-81a8-be9270355279 192.168.178.0/24 |
+--------------------------------------+--------+-------------------------------------------------------+
[root@controller ~]# openstack server create --flavor m1.nano --image cirros \
> --nic net-id=925db129-fab0-43c6-9503-5677188adf1f --security-group default \
> --key-name mykey oldboy
+--------------------------------------+-----------------------------------------------+
| Field | Value |
+--------------------------------------+-----------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-AZ:availability_zone | |
| OS-EXT-SRV-ATTR:host | None |
| OS-EXT-SRV-ATTR:hypervisor_hostname | None |
| OS-EXT-SRV-ATTR:instance_name | instance-00000001 |
| OS-EXT-STS:power_state | 0 |
| OS-EXT-STS:task_state | scheduling |
| OS-EXT-STS:vm_state | building |
| OS-SRV-USG:launched_at | None |
| OS-SRV-USG:terminated_at | None |
| accessIPv4 | |
| accessIPv6 | |
| addresses | |
| adminPass | VusMUQJD7ibc |
| config_drive | |
| created | 2021-12-03T03:02:09Z |
| flavor | m1.nano (0) |
| hostId | |
| id | 3a16160d-d7ae-43e2-a6cd-c62971883bfc |
| image | cirros (9b28c8ce-64d0-40b0-b4ef-61ab38f26d25) |
| key_name | mykey |
| name | oldboy |
| os-extended-volumes:volumes_attached | [] |
| progress | 0 |
| project_id | ddd5154c1a8e46a386f93acfe53c57fd |
| properties | |
| security_groups | [{u'name': u'default'}] |
| status | BUILD |
| updated | 2021-12-03T03:02:09Z |
| user_id | 9f43863f530b446c9c82e7f237d599fa |
+--------------------------------------+-----------------------------------------------+
[root@controller ~]#
[root@controller ~]# openstack server list
+--------------------------------------+--------+--------+------------------------+
| ID | Name | Status | Networks |
+--------------------------------------+--------+--------+------------------------+
| 3a16160d-d7ae-43e2-a6cd-c62971883bfc | oldboy | ERROR | oldboy=192.168.178.102 |
+--------------------------------------+--------+--------+------------------------+
1. 查看实例¶
# 报错内容:No valid host was found. There are not enough hosts available.
6: 解决报错¶
# compute1节点
#如果实例卡在gurb界面
#1.修改配置文件,添加2行信息
vim /etc/nova/nova.conf
[libvirt]
cpu_mode = none
virt_type = qemu
#2.重启nova服务
systemctl restart openstack-nova-compute
[root@compute1 ~]# vim /etc/nova/nova.conf
[root@compute1 ~]#
[root@compute1 ~]#
[root@compute1 ~]# systemctl restart openstack-nova-compute
[root@compute1 ~]#
[root@compute1 ~]#
[root@compute1 ~]# cat /etc/nova/nova.conf
[DEFAULT]
enabled_apis = osapi_compute,metadata
rpc_backend = rabbit
auth_strategy = keystone
my_ip = 192.168.178.31
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
[api_database]
[barbican]
[cache]
[cells]
[cinder]
[conductor]
[cors]
[cors.subdomain]
[database]
[ephemeral_storage_encryption]
[glance]
api_servers = http://controller:9292
[guestfs]
[hyperv]
[image_file_url]
[ironic]
[keymgr]
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = NOVA_PASS
[libvirt]
cpu_mode = none
virt_type = qemu
[matchmaker_redis]
[metrics]
[neutron]
url = http://controller:9696
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = NEUTRON_PASS
[osapi_v21]
[oslo_concurrency]
lock_path = /var/lib/nova/tmp
[oslo_messaging_amqp]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS
[oslo_middleware]
[oslo_policy]
[rdp]
[serial_console]
[spice]
[ssl]
[trusted_computing]
[upgrade_levels]
[vmware]
[vnc]
enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
novncproxy_base_url = http://controller:6080/vnc_auto.html
[workarounds]
[xenserver]
7. 删除实例,重新创建¶
# 在网页上删除实例,然后重新创建
openstack server create --flavor m1.nano --image cirros --nic net-id=925db129-fab0-43c6-9503-5677188adf1f --security-group default --key-name mykey oldboy
#2.检查
openstack server list
nova list
[root@controller ~]# openstack server create --flavor m1.nano --image cirros --nic net-id=925db129-fab0-43c6-9503-5677188adf1f --security-group default --key-name mykey oldboy
+--------------------------------------+-----------------------------------------------+
| Field | Value |
+--------------------------------------+-----------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-AZ:availability_zone | |
| OS-EXT-SRV-ATTR:host | None |
| OS-EXT-SRV-ATTR:hypervisor_hostname | None |
| OS-EXT-SRV-ATTR:instance_name | instance-00000003 |
| OS-EXT-STS:power_state | 0 |
| OS-EXT-STS:task_state | scheduling |
| OS-EXT-STS:vm_state | building |
| OS-SRV-USG:launched_at | None |
| OS-SRV-USG:terminated_at | None |
| accessIPv4 | |
| accessIPv6 | |
| addresses | |
| adminPass | xM6EQXDRyq3Q |
| config_drive | |
| created | 2021-12-03T03:26:50Z |
| flavor | m1.nano (0) |
| hostId | |
| id | f7428b03-5927-4526-b759-7dc34caebb88 |
| image | cirros (9b28c8ce-64d0-40b0-b4ef-61ab38f26d25) |
| key_name | mykey |
| name | oldboy |
| os-extended-volumes:volumes_attached | [] |
| progress | 0 |
| project_id | ddd5154c1a8e46a386f93acfe53c57fd |
| properties | |
| security_groups | [{u'name': u'default'}] |
| status | BUILD |
| updated | 2021-12-03T03:26:50Z |
| user_id | 9f43863f530b446c9c82e7f237d599fa |
+--------------------------------------+-----------------------------------------------+
[root@controller ~]#
[root@controller ~]# openstack server list
+--------------------------------------+--------+--------+------------------------+
| ID | Name | Status | Networks |
+--------------------------------------+--------+--------+------------------------+
| f7428b03-5927-4526-b759-7dc34caebb88 | oldboy | BUILD | oldboy=192.168.178.104 |
+--------------------------------------+--------+--------+------------------------+
[root@controller ~]# openstack server list
+--------------------------------------+--------+--------+------------------------+
| ID | Name | Status | Networks |
+--------------------------------------+--------+--------+------------------------+
| f7428b03-5927-4526-b759-7dc34caebb88 | oldboy | ACTIVE | oldboy=192.168.178.104 |
+--------------------------------------+--------+--------+------------------------+
[root@controller ~]#
[root@controller ~]# nova list
+--------------------------------------+--------+--------+------------+-------------+------------------------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+--------+--------+------------+-------------+------------------------+
| f7428b03-5927-4526-b759-7dc34caebb88 | oldboy | ACTIVE | - | Running | oldboy=192.168.178.104 |
+--------------------------------------+--------+--------+------------+-------------+------------------------+
8. 在计算节点查看实例¶
#compute1
#1.安装工具libvert
yum install libvirt -y
#2.查看实例
virsh list
[root@compute1 ~]# #2.查看实例
[root@compute1 ~]# virsh list
Id Name State
----------------------------------------------------
2 instance-00000003 running
[root@compute1 ~]#
[root@compute1 ~]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 4356/qemu-kvm
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 4899/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1179/sshd
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::80 :::* LISTEN 1369/httpd
tcp6 0 0 :::22 :::* LISTEN 1179/sshd
udp 0 0 0.0.0.0:1001 0.0.0.0:* 828/rpcbind
udp 0 0 192.168.122.1:53 0.0.0.0:* 4899/dnsmasq
udp 0 0 0.0.0.0:67 0.0.0.0:* 4899/dnsmasq
udp 0 0 0.0.0.0:111 0.0.0.0:* 1/systemd
udp 0 0 127.0.0.1:323 0.0.0.0:* 856/chronyd
udp6 0 0 :::1001 :::* 828/rpcbind
udp6 0 0 :::111 :::* 1/systemd
udp6 0 0 ::1:323 :::* 856/chronyd
9. 网页端创建实例¶
1. 启动实例¶
# 在计算-实例中,点击右上角的启动实例,然后输入实例名称:oldgirl,数量调整为2个,然后点击源
2. 选择镜像¶
# 因为目前只有一个镜像,所以直接点击cirror右侧的“+”
3. 选取硬件配置方案¶
# 选择64m内存的方案右侧的“+”
4. 启动实例¶
# 其他选项保持默认即可,然后点击启动实例,启动后如下
10. 网页连接到实例¶
1. 打开控制台¶
# 在实例页面,点击实例名称,然后点击控制台
2. windows添加host解析¶
# 在windows中,添加controller的host解析!
# C:\Windows\System32\drivers\etc\hosts
192.168.178.11 controller
3. 硬重启实例¶
# 刷新页面,依旧不行。点击右上角的下拉菜单,然后硬重启实例
4. 再次测试¶
# 谷歌浏览器不好使
# 换到火狐浏览器后,出现如下界面,提示登录,给了用户名和密码:cirros : cubswin:)
# 登录成功如下
11. 服务器连接实例¶
1. 控制节点¶
#controller
ssh cirros@192.168.178.104
# 因为启动时设置了密钥对,所以直接免密登录了!
[root@controller ~]# ssh cirros@192.168.178.104
The authenticity of host '192.168.178.104 (192.168.178.104)' can't be established.
RSA key fingerprint is SHA256:LAoleqSBx+oOd9l3xq+Nwk2w2xaeOzhqrurczZOL328.
RSA key fingerprint is MD5:b3:e3:73:f7:7d:55:dc:7e:94:c9:af:d5:0d:28:ba:db.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.178.104' (RSA) to the list of known hosts.
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether fa:16:3e:10:b4:3a brd ff:ff:ff:ff:ff:ff
inet 192.168.178.104/24 brd 192.168.178.255 scope global eth0
inet6 fe80::f816:3eff:fe10:b43a/64 scope link
valid_lft forever preferred_lft forever
$
2. 计算节点(或其他)¶
# 需要输入用户名和密码!
[root@compute1 ~]# ssh cirros@192.168.178.104
The authenticity of host '192.168.178.104 (192.168.178.104)' can't be established.
RSA key fingerprint is SHA256:LAoleqSBx+oOd9l3xq+Nwk2w2xaeOzhqrurczZOL328.
RSA key fingerprint is MD5:b3:e3:73:f7:7d:55:dc:7e:94:c9:af:d5:0d:28:ba:db.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.178.104' (RSA) to the list of known hosts.
cirros@192.168.178.104's password:
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether fa:16:3e:10:b4:3a brd ff:ff:ff:ff:ff:ff
inet 192.168.178.104/24 brd 192.168.178.255 scope global eth0
inet6 fe80::f816:3eff:fe10:b43a/64 scope link
valid_lft forever preferred_lft forever
$
最后更新:
2022-02-20 04:00:12