OpenStack系列第一期OpenStack环境搭建与初探本系列笔记将带你从零开始逐步掌握OpenStack的安装、配置与核心操作。第一期聚焦于环境准备和基础入门包括虚拟机克隆、packstack自动化安装、Dashboard与命令行的首次登录以及用户与项目的初步创建。一、实验环境准备1.1 资源清单项目说明宿主机VMware Workstation 17.5操作系统镜像CentOS-Stream-8minimal安装OpenStack版本Victoria通过packstack部署节点规划controller4核/8G/100G、compute4核/8G/100G网络模式NAT网段 192.168.108.0/24网关 192.168.108.2⚠️ 注意Windows环境VMware NAT网关为192.168.108.2Linux环境通常为192.168.108.1请根据实际调整。1.2 模板虚拟机准备首先制作一个干净的CentOS Stream 8模板用于克隆出controller和compute节点。配置yum源使用阿里云镜像bashrm-rf/etc/yum.repos.d/*catEOF/etc/yum.repos.d/openstack.repo[centos-openstack-victoria] nameCentos 8 - openstack victoria baseurlhttps://mirrors.aliyun.com/centos-vault/8-stream/cloud/x86_64/openstack-victoria/ gpgcheck0 enabled1 [baseos] nameCentos Stream 8 - BaseOS baseurlhttps://mirrors.aliyun.com/centos-vault/8-stream/BaseOS/x86_64/os/ gpgcheck0 enabled1 [appstream] nameCentos Stream 8 - AppStream baseurlhttps://mirrors.aliyun.com/centos-vault/8-stream/AppStream/x86_64/os/ gpgcheck0 enabled1 [powertools] nameCentos Stream 8 - PowerTools baseurlhttps://mirrors.aliyun.com/centos-vault/8-stream/PowerTools/x86_64/os/ gpgcheck0 enabled1 EOFyum clean all yum makecache安装基础工具包bashyuminstall-ybash-completionvimopen-vm-tools net-toolssource/usr/share/bash-completion/bash_completion设置hosts和网络bashecho192.168.108.10 controller/etc/hostsecho192.168.108.11 compute/etc/hosts编辑网卡配置静态IP待克隆后设置此处先保留DHCPbashcat/etc/sysconfig/network-scripts/ifcfg-ens160EOF TYPEEthernet BOOTPROTOdhcp NAMEens160 DEVICEens160 ONBOOTyes EOF关闭SELinux并清理信息bashsed-i/^SELinux/cSELinuxdisabled/etc/selinux/configcd/etc/sshrm-rfssh_host_*cat/dev/null/etc/machine-id最后关闭虚拟机并拍摄快照。1.3 克隆controller和compute节点使用VMware的“完整克隆”功能基于模板分别克隆出两台虚拟机openstack_controller和openstack_compute。配置controller节点主机名hostnamectl set-hostname controller静态IP编辑/etc/sysconfig/network-scripts/ifcfg-ens160iniTYPEEthernetBOOTPROTOnoneNAMEens160DEVICEens160ONBOOTyesIPADDR192.168.108.10NETMASK255.255.255.0GATEWAY192.168.108.2DNS1192.168.108.2重启网络bashnmcli connection reload ens160 nmcli connection up ens160配置compute节点主机名hostnamectl set-hostname compute静态IP/etc/sysconfig/network-scripts/ifcfg-ens160iniIPADDR192.168.108.11NETMASK255.255.255.0GATEWAY192.168.108.2DNS1192.168.108.2配置NTP时间同步controller节点作为服务端bashvim/etc/chrony.conf# 修改第4行server ntp.aliyun.com iburst# 添加允许网段allow 192.168.108.0/24systemctl restart chronyd systemctlenablechronydcompute节点客户端无需额外配置指向controller即可packstack会自动处理完成基础配置后分别关闭两台虚拟机并拍摄快照。二、使用packstack安装OpenStack2.1 控制节点安装packstackbashyuminstall-yopenstack-packstack2.2 生成应答文件bashpackstack --gen-answer-fileanswers.txt2.3 修改应答文件关键配置编辑answers.txt设置以下参数ini# 启用Heat编排服务CONFIG_HEAT_INSTALLy# 指定计算节点包含controller自身和compute节点CONFIG_COMPUTE_HOSTS192.168.108.10,192.168.108.11# 配置OVN网络本例使用OVN将br-ex绑定到物理网卡ens160CONFIG_NEUTRON_OVN_BRIDGE_IFACESbr-ex:ens160# 关闭演示项目CONFIG_PROVISION_DEMOn统一修改所有密码为简单密码便于实验bashsed-i.bak-rs/(._Pw)[0-9a-z]/\1huawei/ganswers.txt2.4 关闭NetworkManager避免冲突在controller和compute节点上分别执行bashsystemctl stop NetworkManager systemctl disable NetworkManager systemctl mask NetworkManagerCentOS 8默认使用NetworkManager管理网络但它与OpenStack网络组件冲突必须关闭。2.5 执行安装bashpackstack --answer-fileanswers.txt安装过程约4050分钟会在Testing if puppet apply is finished: controller.pp步骤停留较长时间属正常现象。安装完成后会输出类似如下信息text**** Installation completed successfully ****2.6 安装后处理开启network服务替换NetworkManagercontroller和compute节点bashsystemctl start network systemctlenablenetwork配置OpenStack命令补全bashopenstack complete/etc/bash_completion.d/complete保存最终快照分别对controller和compute节点拍摄快照如openstack_controller_installed。三、登录OpenStack Dashboard3.1 访问Web界面在宿主机浏览器输入http://192.168.108.10首次访问可能提示“不安全连接”继续前往即可。3.2 登录域Default用户名admin密码huawei根据之前修改登录成功后默认进入admin项目的概况界面。3.3 界面初步探索左侧导航栏 →管理员→概览查看系统资源使用摘要。身份管理→项目查看现有项目。身份管理→用户查看所有用户包括admin、glance、nova等系统用户。3.4 修改admin密码可选右上角点击admin→设置→修改密码输入原密码和新密码点击“修改”。修改后需重新登录。四、登录OpenStack命令行客户端4.1 使用环境变量文件登录安装完成后控制节点/root目录下会自动生成keystonerc_admin文件内容如下bash# 示例内容exportOS_USERNAMEadminexportOS_PASSWORDhuaweiexportOS_PROJECT_NAMEadminexportOS_USER_DOMAIN_NAMEDefaultexportOS_PROJECT_DOMAIN_NAMEDefaultexportOS_AUTH_URLhttp://192.168.108.10:5000/v3exportOS_IDENTITY_API_VERSION3执行该文件即可导入环境变量bashsourcekeystonerc_admin此时命令行提示符变为text[rootcontroller ~(keystone_admin)]#验证登录成功bashopenstack project list应显示项目列表如admin、services等。4.2 切换其他用户登录如果需要使用普通用户如后续创建的user1可以手动创建环境变量文件keystonerc_user1bashcatkeystonerc_user1EOF export OS_USERNAMEuser1 export OS_PASSWORDhuawei export OS_PROJECT_NAMEadmin export OS_USER_DOMAIN_NAMEDefault export OS_PROJECT_DOMAIN_NAMEDefault export OS_AUTH_URLhttp://192.168.108.10:5000/v3 export OS_IDENTITY_API_VERSION3 export PS1[\u\h \W(keystone_user1)]\$ EOF执行bashsourcekeystonerc_user1 openstack project list4.3 从Dashboard下载RC文件在Dashboard右上角点击用户名 →OpenStack RC文件下载后上传到控制节点的/root目录然后执行bashsourceadmin-openrc.sh# 提示输入密码输入huaweiopenstack project list五、基本操作体验创建用户并赋予角色5.1 Dashboard方式以admin登录进入身份管理→用户→创建用户。填写用户名user1密码huawei主项目admin角色_member_点击“创建用户”。退出admin使用user1登录观察界面变化缺少“管理员”菜单项。5.2 CLI方式bashsourcekeystonerc_admin openstack user create--passwordhuawei--projectadmin--role_member_ user1查看用户列表bashopenstack user list六、思考与验证admin与_member_角色用户界面有何区别_member_用户没有“管理员”部分身份管理中也缺少“域”、“组”、“角色”等内容因为权限不同。同一个项目下的不同角色用户可管理的资源范围有何不同admin拥有项目内所有资源的操作权限而普通成员只能管理属于自己的资源如自己创建的虚拟机、卷等。 知识点一览表第一期类别要点命令/操作环境准备模板虚拟机、yum源、基础工具yum install,cat repo网络配置静态IP、hosts、NTPnmcli,chronypackstack安装生成应答文件、修改配置、执行安装packstack --gen-answer-file,--answer-file关闭NetworkManager避免与OVN冲突systemctl mask NetworkManager登录DashboardURL、默认域、初始密码http://192.168.108.10命令行登录加载环境变量文件source keystonerc_admin用户管理创建用户、分配项目角色openstack user create权限差异admin vsmember界面菜单对比