【OpenStack部署-1】

1. 使用packstack部署openstack redhat开源项目 RDO, 利用puppet 管理openstack使用RDO项目中的工具packstack 安装openstack:一种是 allinone 方式 : 把openstack的各个组件全部安装到一台机器上去,安装的时候很多都是不可以定制,allinone只适合做测试环境,体验一下openstack同时,会预下载一个镜像cirros及配置模拟环境,从互联网上下载,其下载地址是国外... 阅读详情

主机网络

各个节点操都要配置

配置网络接口

将第一个接口配置为管理网络接口

[root@controller ~]# vim  /etc/sysconfig/network-scripts/ifcfg-eth0

提供者网络接口使用一个特殊的配置,不分配给它IP地址。配置第二块网卡作为提供者网络

[root@controller ~]# vim  /etc/sysconfig/network-scripts/ifcfg-eth1

改完之后

[root@controller ~]# systemctl restart network

如果网卡名称不是eth0,加一条参数,重启生效

[root@controller ~]# vim /boot/grub2/grub.cfg

配置域名解析

[root@controller ~]# vim /etc/hosts

网络时间协议(NTP)

控制节点服务器

[root@controller ~]# yum install chrony

[root@controller ~]# vim /etc/chrony.conf

[root@controller ~]# systemctl enable --now chronyd.service
 

其它节点服务器

[root@compute1 ~]# yum install chrony
[root@compute1 ~]# vim /etc/chrony.conf

[root@compute1 ~]#  systemctl enable --now chronyd.service
 

OpenStack包

主机必须包含最新版本的基础安装软件包

[root@controller ~]# tar xf mitaka.tar -C /opt/

[root@controller ~]# vim /etc/yum.repos.d/openstack.repo

[root@controller ~]# yum upgrade

如果更新了一个新内核,重启主机来使用新内核

安装 OpenStack 客户端

[root@controller ~]# yum install python-openstackclient

SQL数据库

[root@controller ~]# yum install mariadb mariadb-server python2-PyMySQL

[root@controller ~]# vim /etc/my.cnf.d/openstack.cnf

[root@controller ~]# systemctl enable --now mariadb.service

[root@controller ~]# mysql_secure_installation

消息队列

[root@controller ~]# yum install rabbitmq-server

[root@controller ~]# rabbitmq-plugins enable --now rabbitmq_management

[root@controller ~]# systemctl enable --now rabbitmq-server.service

[root@controller ~]# rabbitmqctl add_user openstack openstack

[root@controller ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"

http://192.168.247.171:15672/

用户/密码:guest/guest

Memcached

[root@controller ~]# yum install memcached python-memcached

[root@controller ~]#  vim /etc/sysconfig/memcached

[root@controller ~]# systemctl enable --now memcached.service

认证服务

这一章描述如何在控制节点上安装和配置OpenStack身份认证服务,代码名称keystone。出于性能原因,这个配置部署Fernet令牌和Apache HTTP服务处理请求

安装和配置

先决条件

[root@controller ~]# mysql -u root -p

CREATE DATABASE keystone;

GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \ IDENTIFIED BY 'KEYSTONE_DBPASS';

GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \ IDENTIFIED BY 'KEYSTONE_DBPASS';

用合适的密码替换 KEYSTONE_DBPASS

生成一个随机值在初始的配置中作为管理员的令牌

[root@controller ~]# openssl rand -hex 10

安全并配置组件

[root@controller ~]# yum install openstack-keystone httpd mod_wsgi

[root@controller ~]# vim /etc/keystone/keystone.conf

admin_token = ADMIN_TOKEN

使用前面步骤生成的随机数替换``ADMIN_TOKEN`` 值。

connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone

将``KEYSTONE_DBPASS``替换为你为数据库选择的密码

在``[token]``部分,配置Fernet UUID令牌的提供者

provider = fernet

[root@controller ~]# su -s /bin/sh -c "keystone-manage db_sync" keystone
[root@controller ~]# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
 

配置 Apache HTTP 服务器

[root@controller ~]# vim /etc/httpd/conf/httpd.conf

[root@controller ~]# vim /etc/httpd/conf.d/wsgi-keystone.conf

Listen 5000
Listen 35357

<VirtualHost *:5000>
    WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
    WSGIProcessGroup keystone-public
    WSGIScriptAlias / /usr/bin/keystone-wsgi-public
    WSGIApplicationGroup %{GLOBAL}
    WSGIPassAuthorization On
    ErrorLogFormat "%{cu}t %M"
    ErrorLog /var/log/httpd/keystone-error.log
    CustomLog /var/log/httpd/keystone-access.log combined

    <Directory /usr/bin>
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:35357>
    WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
    WSGIProcessGroup keystone-admin
    WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
    WSGIApplicationGroup %{GLOBAL}
    WSGIPassAuthorization On
    ErrorLogFormat "%{cu}t %M"
    ErrorLog /var/log/httpd/keystone-error.log
    CustomLog /var/log/httpd/keystone-access.log combined

    <Directory /usr/bin>
        Require all granted
    </Directory>
</VirtualHost>

[root@controller ~]#  systemctl enable --now  httpd.service

创建服务实体和API端点

export OS_TOKEN=ADMIN_TOKEN

将ADMIN_TOKEN替换为你生成的认证令牌。例如:

[root@controller ~]# export OS_TOKEN=32684dec9a19700d548f
[root@controller ~]# export OS_URL=http://controller:35357/v3
[root@controller ~]# export OS_IDENTITY_API_VERSION=3

$ openstack service create \
  --name keystone --description "OpenStack Identity" identity
$ openstack endpoint create --region RegionOne \
  identity public http://controller:5000/v3
$ openstack endpoint create --region RegionOne \
  identity internal http://controller:5000/v3
$ openstack endpoint create --region RegionOne \
  identity admin http://controller:35357/v3

创建域、项目、用户和角色

$ openstack domain create --description "Default Domain" default
$ openstack project create --domain default \
  --description "Admin Project" admin
$ openstack user create --domain default \
  --password-prompt admin
$ openstack role create admin
$ openstack role add --project admin --user admin admin
$ openstack project create --domain default \
  --description "Service Project" service
$ openstack project create --domain default \
  --description "Demo Project" demo
$ openstack user create --domain default \
  --password-prompt demo
$ openstack role create user
$ openstack role add --project demo --user demo user

验证操作

重置``OS_TOKEN``和``OS_URL`` 环境变量:

$ unset OS_TOKEN OS_URL

作为 admin 用户,请求认证令牌:

$ openstack --os-auth-url http://controller:35357/v3 \
  --os-project-domain-name default --os-user-domain-name default \
  --os-project-name admin --os-username admin token issue

作为``demo`` 用户,请求认证令牌:

$ openstack --os-auth-url http://controller:5000/v3 \
  --os-project-domain-name default --os-user-domain-name default \
  --os-project-name demo --os-username demo token issue

创建 OpenStack 客户端环境脚本

[root@controller ~]# vim admin-openrc

export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

将 ADMIN_PASS 替换为你在认证服务中为 admin 用户选择的密码

[root@controller ~]# vim demo-openrc

export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=DEMO_PASS
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

将 DEMO_PASS 替换为你在认证服务中为 demo 用户选择的密码

[root@controller ~]# chmod +x admin-openrc demo-openrc
[root@controller ~]# . admin-openrc

[root@controller ~]# openstack token issue


 

镜像服务

安装和配置

$ mysql -u root -p
CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \
  IDENTIFIED BY 'GLANCE_DBPASS';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \
  IDENTIFIED BY 'GLANCE_DBPASS';

用一个合适的密码替换 GLANCE_DBPASS

退出数据库客户端

$ . admin-openrc
$ openstack user create --domain default --password-prompt glance

$ openstack role add --project service --user glance admin
$ openstack service create --name glance \
  --description "OpenStack Image" image

$ openstack endpoint create --region RegionOne \
  image public http://controller:9292

$ openstack endpoint create --region RegionOne \
  image internal http://controller:9292

$ openstack endpoint create --region RegionOne \
  image admin http://controller:9292

[root@controller ~]# yum install openstack-glance

编辑文件 /etc/glance/glance-api.conf 并完成如下动作

  • [database]
    ...
    connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
    

    将``GLANCE_DBPASS`` 替换为你为镜像服务选择的密码。

  • 在 [keystone_authtoken] 和 [paste_deploy] 部分,配置认证服务访问:

    [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 = glance
    password = GLANCE_PASS
    
    [paste_deploy]
    ...
    flavor = keystone
    

    将 GLANCE_PASS 替换为你为认证服务中你为 glance 用户选择的密码。

  • 在 [glance_store] 部分,配置本地文件系统存储和镜像文件位置:

    [glance_store]
    ...
    stores = file,http
    default_store = file
    filesystem_store_datadir = /var/lib/glance/images/

编辑文件 ``/etc/glance/glance-registry.conf``并完成如下动作:

  • 在 [database] 部分,配置数据库访问:

    [database]
    ...
    connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
    

    将``GLANCE_DBPASS`` 替换为你为镜像服务选择的密码。

  • 在 [keystone_authtoken] 和 [paste_deploy] 部分,配置认证服务访问:

    [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 = glance
    password = GLANCE_PASS
    
    [paste_deploy]
    ...
    flavor = keystone

写入镜像服务数据库:

# su -s /bin/sh -c "glance-manage db_sync" glance
  • 启动镜像服务、配置他们随机启动:

    # systemctl enable openstack-glance-api.service \
      openstack-glance-registry.service
    # systemctl start openstack-glance-api.service \
      openstack-glance-registry.service

验证操作

$ . admin-openrc
$ wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
$ openstack image create "cirros" \
  --file cirros-0.3.4-x86_64-disk.img \
  --disk-format qcow2 --container-format bare \
  --public

$ openstack image list

计算服务

安装并配置控制节点

先决条件

$ mysql -u root -p
CREATE DATABASE nova_api;
CREATE DATABASE nova;
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \
  IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \
  IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
  IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
  IDENTIFIED BY 'NOVA_DBPASS';

用合适的密码代替 NOVA_DBPASS

退出数据库客户端

$ . admin-openrc
$ openstack user create --domain default \
  --password-prompt nova

$ openstack role add --project service --user nova admin
$ openstack service create --name nova \
  --description "OpenStack Compute" compute

 openstack endpoint create --region RegionOne \
  compute public http://controller:8774/v2.1/%\(tenant_id\)s

openstack endpoint create --region RegionOne \
  compute internal http://controller:8774/v2.1/%\(tenant_id\)s

openstack endpoint create --region RegionOne \
  compute admin http://controller:8774/v2.1/%\(tenant_id\)s

安全并配置组件

yum install openstack-nova-api openstack-nova-conductor \
  openstack-nova-console openstack-nova-novncproxy \
  openstack-nova-scheduler

[root@controller ~]# vim /etc/nova/nova.conf

[DEFAULT]
...
enabled_apis = osapi_compute,metadata
[api_database]
...
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api

[database]
...
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova

用你为 Compute 数据库选择的密码来代替 NOVA_DBPASS。

[DEFAULT]
...
rpc_backend = rabbit

[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS

用你在 “RabbitMQ” 中为 “openstack” 选择的密码替换 “RABBIT_PASS”。

[DEFAULT]
...
auth_strategy = keystone

[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

使用你在身份认证服务中设置的``nova`` 用户的密码替换``NOVA_PASS``

[DEFAULT]
...
my_ip = 192.168.247.171
[DEFAULT]
...
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
[vnc]
...
vncserver_listen = $my_ip
vncserver_proxyclient_address = $my_ip
[glance]
...
api_servers = http://controller:9292
[oslo_concurrency]
...
lock_path = /var/lib/nova/tmp

同步Compute 数据库:

# su -s /bin/sh -c "nova-manage api_db sync" nova
# su -s /bin/sh -c "nova-manage db sync" nova
  • 启动 Compute 服务并将其设置为随系统启动:

    # systemctl enable openstack-nova-api.service \
      openstack-nova-consoleauth.service openstack-nova-scheduler.service \
      openstack-nova-conductor.service openstack-nova-novncproxy.service
    # systemctl start openstack-nova-api.service \
      openstack-nova-consoleauth.service openstack-nova-scheduler.service \
      openstack-nova-conductor.service openstack-nova-novncproxy.service

安装和配置计算节点

安全并配置组件

# yum install openstack-nova-compute
[DEFAULT]
...
rpc_backend = rabbit

[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS

用你在 “RabbitMQ” 中为 “openstack” 选择的密码替换 “RABBIT_PASS”。

[DEFAULT]
...
auth_strategy = keystone

[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

使用你在身份认证服务中设置的``nova`` 用户的密码替换``NOVA_PASS``

[DEFAULT]
...
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS

将其中的 MANAGEMENT_INTERFACE_IP_ADDRESS 替换为计算节点上的管理网络接口的IP 地址

[DEFAULT]
...
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
[vnc]
...
enabled = True
vncserver_listen = 0.0.0.0
vncserver_proxyclient_address = $my_ip
novncproxy_base_url = http://controller:6080/vnc_auto.html
[glance]
...
api_servers = http://controller:9292
[oslo_concurrency]
...
lock_path = /var/lib/nova/tmp

完成安装

$ egrep -c '(vmx|svm)' /proc/cpuinfo

如果这个命令返回了 one or greater 的值,那么你的计算节点支持硬件加速且不需要额外的配置。

如果这个命令返回了 zero 值,那么你的计算节点不支持硬件加速。你必须配置 libvirt 来使用 QEMU 去代替 KVM

启动计算服务及其依赖,并将其配置为随系统自动启动:

# systemctl enable libvirtd.service openstack-nova-compute.service
# systemctl start libvirtd.service openstack-nova-compute.service

验证操作

在控制节点上执行这些命令

Networking 服务

安装并配置控制节点

$ mysql -u root -p
CREATE DATABASE neutron;
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \
  IDENTIFIED BY 'NEUTRON_DBPASS';
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \
  IDENTIFIED BY 'NEUTRON_DBPASS';
$ . admin-openrc
$ openstack user create --domain default --password-prompt neutron

openstack role add --project service --user neutron admin
openstack service create --name neutron \
  --description "OpenStack Networking" network

openstack endpoint create --region RegionOne \
  network public http://controller:9696

openstack endpoint create --region RegionOne \
  network internal http://controller:9696

openstack endpoint create --region RegionOne \
  network admin http://controller:9696

配置网络选项

yum install openstack-neutron openstack-neutron-ml2 \
  openstack-neutron-linuxbridge ebtables

[root@controller ~]# vim /etc/neutron/neutron.conf

[database]
...
connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron

使用你设置的数据库密码替换 NEUTRON_DBPASS

[DEFAULT]
...
core_plugin = ml2
service_plugins =
[DEFAULT]
...
rpc_backend = rabbit

[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS

用你在RabbitMQ中为``openstack``选择的密码替换 “RABBIT_PASS”

[DEFAULT]
...
auth_strategy = keystone

[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 = neutron
password = NEUTRON_PASS

将 NEUTRON_PASS 替换为你在认证服务中为 neutron 用户选择的密码

[DEFAULT]
...
notify_nova_on_port_status_changes = True
notify_nova_on_port_data_changes = True

[nova]
...
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password = NOVA_PASS

使用你在身份认证服务中设置的``nova`` 用户的密码替换``NOVA_PASS``

[oslo_concurrency]
...
lock_path = /var/lib/neutron/tmp

[root@controller ~]# vim /etc/neutron/plugins/ml2/ml2_conf.ini

[ml2]
...
type_drivers = flat,vlan
[ml2]
...
tenant_network_types =
[ml2]
...
mechanism_drivers = linuxbridge
[ml2]
...
extension_drivers = port_security
[ml2_type_flat]
...
flat_networks = provider
[securitygroup]
...
enable_ipset = True

[root@controller ~]# vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini

[linux_bridge]
physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME

将``PUBLIC_INTERFACE_NAME`` 替换为底层的物理公共网络接口

[vxlan]
enable_vxlan = False
[securitygroup]
...
enable_security_group = True
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

[root@controller ~]# vim /etc/neutron/dhcp_agent.ini

[DEFAULT]
...
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = True

配置元数据代理

[root@controller ~]# vim /etc/neutron/metadata_agent.ini

[DEFAULT]
...
nova_metadata_ip = controller
metadata_proxy_shared_secret = METADATA_SECRET

用你为元数据代理设置的密码替换 METADATA_SECRET

为计算节点配置网络服务

[root@controller ~]# vim /etc/nova/nova.conf

[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

service_metadata_proxy = True
metadata_proxy_shared_secret = METADATA_SECRET

将 NEUTRON_PASS 替换为你在认证服务中为 neutron 用户选择的密码。

使用你为元数据代理设置的密码替换``METADATA_SECRET``

完成安装

# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
# su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
  --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
# systemctl restart openstack-nova-api.service
# systemctl enable neutron-server.service \
  neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
  neutron-metadata-agent.service
# systemctl start neutron-server.service \
  neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
  neutron-metadata-agent.service

安装和配置计算节点

安装组件

# yum install openstack-neutron-linuxbridge ebtables ipset

配置通用组件

[root@compute1 ~]# vim /etc/neutron/neutron.conf

[DEFAULT]
...
rpc_backend = rabbit

[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS

用你在RabbitMQ中为``openstack``选择的密码替换 “RABBIT_PASS”

[DEFAULT]
...
auth_strategy = keystone

[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 = neutron
password = NEUTRON_PASS

将 NEUTRON_PASS 替换为你在认证服务中为 neutron 用户选择的密码

[oslo_concurrency]
...
lock_path = /var/lib/neutron/tmp

配置网络选项

[root@compute1 ~]# vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini

[linux_bridge]
physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME

将``PUBLIC_INTERFACE_NAME`` 替换为底层的物理公共网络接口

[vxlan]
enable_vxlan = False
[securitygroup]
...
enable_security_group = True
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

为计算节点配置网络服务

[root@compute1 ~]# vim /etc/nova/nova.conf

[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

将 NEUTRON_PASS 替换为你在认证服务中为 neutron 用户选择的密码

完成安装

# systemctl restart openstack-nova-compute.service
# systemctl enable neutron-linuxbridge-agent.service
# systemctl start neutron-linuxbridge-agent.service

验证操作

在控制节点上执行这些命令

[root@controller ~]#  neutron agent-list

输出结果应该包括控制节点上的三个代理和每个计算节点上的一个代理

启动一个实例

创建提供者网络

[root@controller ~]#  . admin-openrc
[root@controller ~]# neutron net-create --shared --provider:physical_network provider \
>   --provider:network_type flat provider

[root@controller ~]# vim /etc/neutron/plugins/ml2/ml2_conf.ini

[ml2_type_flat]
flat_networks = provider

[root@controller ~]# vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini

[linux_bridge]
physical_interface_mappings = provider:eth1

[root@controller ~]# neutron subnet-create --name provider \
>   --allocation-pool start=192.168.247.101,end=192.168.247.120 \
>   --dns-nameserver 114.114.114.114 --gateway 192.168.247.2 \
>   provider 192.168.247.0/24

创建m1.nano规格的主机

[root@controller ~]# openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano

生成一个键值对

[root@controller ~]# ssh-keygen -q -N ""
[root@controller ~]#  openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey

[root@controller ~]# openstack keypair list

增加安全组规则

[root@controller ~]# openstack security group rule create --proto icmp default

[root@controller ~]# openstack security group rule create --proto tcp --dst-port 22 default
 

在公有网络上创建实例

[root@controller ~]# . demo-openrc
[root@controller ~]# openstack flavor list

[root@controller ~]# openstack image list

[root@controller ~]# openstack network list

[root@controller ~]# openstack security group list

[root@controller ~]# openstack server create --flavor m1.nano --image cirros --nic net-id=fd33ce72-9eeb-40b9-9965-8f398f1ab893 --security-group default --key-name mykey provider-instance

[root@controller ~]# openstack server list

使用虚拟控制台访问实例

[root@controller ~]# openstack console url show provider-instance

如果你运行浏览器的主机无法解析``controller`` 主机名,你可以将 ``controller``替换为你控制节点管理网络的IP地址

验证能否连接到互联网

验证能否远程访问实例

验证控制节点或者其他公有网络上的主机能否ping通实例

[root@controller ~]# openstack server list

在控制节点或其他公有网络上的主机使用 SSH远程访问实例

[root@controller ~]# ssh cirros@192.168.247.101

Dashboard

安装和配置

[root@controller ~]# yum install openstack-dashboard
[root@controller ~]# vim /etc/openstack-dashboard/local_settings

OPENSTACK_HOST = "controller"
ALLOWED_HOSTS = ['*', ]
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'

CACHES = {
    'default': {
         'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
         'LOCATION': 'controller:11211',
    }
}
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
OPENSTACK_API_VERSIONS = {
    "identity": 3,
    "image": 2,
    "volume": 2,
}
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "default"
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"
OPENSTACK_NEUTRON_NETWORK = {
    ...
    'enable_router': False,
    'enable_quotas': False,
    'enable_distributed_router': False,
    'enable_ha_router': False,
    'enable_lb': False,
    'enable_firewall': False,
    'enable_vpn': False,
    'enable_fip_topology_check': False,
}
TIME_ZONE = "Asia/Shanghai"

[root@controller ~]# systemctl restart httpd.service memcached.service
 

验证操作

http://192.168.247.171/dashboard

验证使用 admin 或者``demo``用户凭证和``default``域凭证

kolla-Ansible部署Openstack2024.1(含cinder、swift安装) kolla-Ansible部署Openstack2024.1,并安装了cinder、swift,步骤详细,希望对大家的工作和学习有所帮助。 阅读详情

相关推荐

基于OpenStack的Cloudlet安装与部署(1)

OpenStack上安装Cloudlet以及遇到的问题

xmkid的博客 1847

kolla-ansible部署OpenStack 2025.1

最新版本发布后,建议查阅OpenStack官方部署指南和kolla-ansible的GitHub仓库获取版本特定说明。

llll213的博客 447

OpenStack RDO 部署流程 - 1(自动化部署)

OpenStackRDO部署流程 - 1(自动化部署) 0. 环境: 操作系统:CentOS6.5 amd64 目标系统:OpenStackHavana Release + Open vSwitch + GRE 网络环境: 10.1.101.0/24:负责外网流量 192.168.200.0/24:负责管理流量 192.168.300.0/24:负责隧道流量 计划部署3台服务器:

echo 'narcissus' 6910

手动部署OpenStack环境(一:Virtual Box 5.1 环境的安装及配置)

任务一、Virtual Box 5.1 环境的安装及配置 1.1、安装环境检查 1.2、创建安装目录 1.3、安装及配置 实验目的及要求 完成Virtual box平台安装,会应用相关操作; 在virtual box虚拟平台上部署网络节点Network; 在virtual box虚拟平台上部署计算节点Computer; 在virtual box虚拟平...

Eyeshot的博客 908

OpenStack部署过程中遇到的问题汇总(1)

部署环境 安装方式:单节点配置OpenStack 问题汇总 1.通过Dashboard界面创建新虚拟机实例时,如果在"User Data"选项里输入中文的话,Apache日志会报错: "[Thu Oct 18 10:06:25 2012] [error] UnicodeEncodeError: 'ascii' codec can't encode characters in positio

维特说 1847

【OpenStack】菜鸟学OpenStack之部署Train(1)

OpenStack安装配置准备

小哲的博客 3005

脚本安装Rocky版OpenStack 1控制节点+1计算节点环境部署

视频安装指南请访问: http://39.96.203.138/wordpress/document/%E8%84%9A%E6%9C%AC%E5%AE%89%E8%A3%85rocky%E7%89%88openstack-1%E6%8E%A7%E5%88%B6%E8%8A%82%E7%82%B91%E8%AE%A1%E7%AE%97%E8%8A%82%E7%82%B9%E7%8E...

weixin_30655569的博客 767

保姆级教程:手把手带你复现APFNet论文的RGBT目标跟踪模型(附完整代码与数据集配置)

本文提供了一份详细的APFNet论文复现指南,涵盖从环境搭建到模型测试的全流程。通过解析多模态融合模块和渐进式训练流程,帮助读者高效完成RGBT目标跟踪模型的复现工作,特别针对训练和测试中的常见问题提供实用解决方案。

weixin_29056781的博客 342

OpenStack Train Magnum部署Kubernetes(1)--部署OpenStack Train

OpenStack Train Magnum部署Kunernetes(1)–部署OpenStack Train 部署OpenStack Train版本

weixin_43905458的博客 1836

关于石墨烯费米能级和偏置电压之间的关系问题

石墨烯费米能级与电压的关系问题

qq_37946542的博客 3514

datart 二开环境搭建

下载源码, 地址: https://github.com/running-elephant/datart, dev 分支; 解压后使用 idea 打开; 服务端: 3.1 安装依赖, idea会自动安装; 3.2 修改配置文件 /config/application.yml 3.3 创建数据库,并将bin/datart.sql导入到数据库中 3.4 入口: /server/src/main/java/datart/DatartServerApplication.java [外链图片转存失败,源站可能有防.

又是再见? 6133

openstack部署过程1

openstack部署过程1 名称 IP地址 主机名称 控制节点 192.168.56.10 Controller 计算节点1 192.168.56.20 Computer1 计算节点2 192.168.56.30 Computer2 1.基础环境准备 使用VMware初始化三台虚拟机 controller节点配置 这里安装了图像化界面GNOME Desktop( 方便偷懒 ???? 设置静态IP 使用命令 vi /etc/sysconfig/network-scripts/i

weach的博客 829

强化学习:Distributed PPO (DPPO) 学习笔记

DPPO = Distributed + Proximal Policy Optimization Distributed:多个智能体并行训练 Proximal:限制策略更新幅度,确保稳定性 Policy Optimization:基于策略梯度的优化方法 核心思想:多个智能体并行探索环境,共享经验,通过裁剪策略更新确保训练稳定

只是个人学习笔记 1331

CentOS 7部署OpenStack(1)—准备基础环境

本文主要安装最新版L版openstack,采用yum安装方式,编译安装后面后跟上。 操作指导:        只有“#”的命令行表示在所有的节点均进行操作;命令行有主机名的表示仅在该主机上进行操作。        另外,官方文档时间同步采用的是chrony,本文仍采用ntp服务。 1、系统环境 # uname -r 3.10.0-229.el7.x86_64 # cat /etc/r

老K的博客 552

出个AI8051U的PWM例程 | 3相互补SPWM变频驱动,PWMA-3个相位差120度的PWM互补输出

通道2输出: P2.2, PWMA2P输出, P2.3, PWMA2N输出, PWMA2相对PWMA1滞后120度相位.通道3输出: P2.4, PWMA3P输出, P2.5, PWMA3N输出, PWMA3相对PWMA1滞后240度相位.先别修改程序, 直接下载"Objects"里的"pwm.hex"测试, 下载时选择主频24MHz.主频32.768MHz, PWM周期1422, 刷新频率23040Hz,死区0.5us,通道1输出: P2.0, PWMA1P输出, P2.1, PWMA1N输出。

USB_CAN_8051的博客 691

光电二极管探测器电流信号处理与指令输出系统

本文提出了一种基于Python的光电二极管电流信号处理系统设计方案。该系统能够实时采集、处理光电二极管输出的电流信号,并根据预设阈值输出控制指令。系统采用模块化架构,包含数据采集、信号处理、阈值检测、指令生成等核心模块。其中数据采集模块提供了模拟器实现和硬件接口框架,支持噪声模拟和脉冲信号生成。系统设计考虑了实时性、可靠性和可扩展性,适用于光强测量、光电检测等多种应用场景。

huanghm88的专栏 1180

openstack1环境部署

基于VMware Workstation 环境,创建计算,控制,块储存节点两块网卡,仅主机+NET两块网卡,仅主机+NET一块网卡,NET以上参数仅供参考。

w1741699471的博客 143

c#视觉应用开发中如何使用Emgu CV在C#中进行图像处理?

Emgu CV 是 OpenCV 的 .NET 包装器,可以让开发者在 .NET 语言(如 C#)中使用 OpenCV 的功能进行图像处理。在进行图像处理时,Emgu CV 提供了丰富的 API 可以使用。PictureBoxImageBox下面是一个详细的示例,演示如何使用 Emgu CV 在 C# 中进行基本的图像处理,包括加载图像、转换为灰度图像、进行边缘检测,然后显示结果。byte在这个示例中,我们使用了三个PictureBox控件来显示原始图像、灰度图像和边缘检测后的图像。

zhangzhechun的专栏 668

OpenStack Train版部署(1)

添加每台新的计算节点时,必须在控制器节点上运行”su -s /bin/sh -c “nova-manage cell_v2 discover_hosts --verbose” nova“以注册这些新的计算节点。Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-2097151, default 2097151): #磁盘分区中最后1个扇区的位置 默认全部。–external 将虚拟网络定义为外部,如果想创建一个内部网络,则可以使用–internal。

2401_83947353的博客 874

ESD防护设计宝典(十):RE(辐射发射)超标问题排查与解决

RE测试是EMC认证的“头号杀手”。当屏幕上出现一根根超标频谱线时,如何快速定位元凶并有效整改?本讲将带你化身电磁侦探,完成一次完美的RE问题“缉凶”。

m0_56451176的博客 394

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

openstack-云平台部署 1

OpenStack是一个云操作系统,它控制整个数据中心的计算、存储和网络资源的大型池,所有这些都通过具有通用身份验证机制的api进行管理和配置。OpenStack在除了标准的基础设施即服务功能外,其他组件还提供编排、故障管理和服务管理等服务,以确保用户应用程序的高可用性。OpenStack还提供了一个仪表板,允许管理员控制,同时允许用户通过web界面提供资源。安装RabbitMQ组件并进行相关配置。安装memcached并进行相关配置。安装openstack客户端。openstack简介。

m0_65366762的博客 430

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

kolla 部署 openstack v1.0

准备 hosts配置 cat << EOF >> /etc/hosts 192.168.179.90 kolla-ansible-controller 192.168.179.91 kolla-ansible-compute EOF ssh 互信 ssh-copy-id $ip 依赖包安装 for ip in kolla-ansible-controller kolla-ansible-compute; do ssh $ip yum install -y p...

kwame211的博客 2790

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

openstack rocky 部署错误1 备忘

执行.stack.sh 过程中提示如下: net_mlx5: cannot load glue library: libibverbs.so.1: cannot open shared object file: No such file or directory net_mlx5: cannot initialize PMD due to missing run-time dependency on rdma-core libraries (libibverbs, libmlx5) PMD: net_mlx

qinchun的博客 602

openstack-queens-1部署

1-openstack-queens-基本组件部署

coco32123的博客 274

OpenStack的环境部署7-1

四、基础环境配置 CT VM:192.168.100.10 NAT:192.168.163.10 C1 VM:192.168.100.20 NAT:192.168.163.20 C2 VM:192.168.100.30 NAT:192.168.163.30 下面以CT为列,其他的注意修改成对应的ip 1、防火墙、核心防护、主机名 关闭防火墙、核心防护 hostnamectl set-hostname CT su systemctl stop firewalld systemctl disable firew

志当存高远 366

超详细Openstack核心组件——Dashboard部署

目录OpenStack-Dashboard组件部署c1配置总结 OpenStack-Dashboard组件部署 继neutron部署完成后,继续部署Dashboard组件 因为在CT控制节点已安装httpd服务,而Dashboard控制台也需要httpd支持,所以此处可以在C1节点进行安装httpd c1配置 [root@c1 ~]# yum -y install openstack-dashboard httpd 1. 修改local_setting本地控制台的配置文件 [root@c1 ~]# c

咕咕咕daisy! 2316
上一篇: [hadoop高可用架构]
下一篇: 【Openstack部署-2】
insertYam
博客等级 码龄3年 2粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值