youto`blog - openstack
type: channel
link: http://www.youto.club/index.php/tag/openstack/
items: Deploy OpenStack offline based on Kolla
items: openstack 运维
items: openstact 基础环境安装 (手动版)
items: Keystone

Deploy OpenStack offline based on Kolla
type: item
date: 2023-05-06T05:09:00+00:00
description: Deploy OpenStack offline based on Kolla 系统：CentOS Linux release 7.9.2009 (Core) 规格：4C8G 存储 50G 系统盘 20G 数据盘（cinder） 网络规划 ens33 仅主机（管理网、ip：192.168.100.10/24） ens34 NAT（业务网、CICR：192.168.10.0/24 、gw：192.168.10.2） VIP 192.168.100.100 初始化环境 1、修改主机名 hosts [root@kolla ~]# hostnamectl set-hostname kolla rabbitmq 可能需要能够进行主机名解析 2、配置网络 [root@kolla ~]# cat > /etc/sysconfig/network-scripts/ifcfg-ens34 <<EOF NAME=ens34 DEVICE=ens34 TYPE=Ethernet ONBOOT="yes" BOOTPROTO="none" EOF [root@kolla ~]# nmcli con reload && nmcli con up ens34 准备两块网卡、ens34 为 业务网络 3、上传软件包 99cloud_skyline.tar.gz // skyline 容器镜像 kolla_centos_train_min.tar.gz // 容器镜像（最小化） kolla_centos_train_rpm.tar.gz // 依赖软件包 kolla_centos_train_whl.tar.gz // pip依赖包 4、创建 lvm [root@kolla ~]# pvcreate /dev/sdb [root@kolla ~]# vgcreate cinder-volumes /dev/sdb 注：卷组名为 cinder_volume_group 参数 5、配置 源 配置 yum [root@kolla ~]# mkdir /etc/yum.repos.d/bak [root@kolla ~]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak [root@kolla ~]# tar xf kolla_centos_train_rpm.tar.gz -C /opt/ [root@kolla ~]# cat > /etc/yum.repos.d/local.repo << EOF [kolla] name=kolla - acha baseurl=file:///opt/kolla_centos_train_rpm/ gpgcheck=0 enabled=1 EOF 安装 依赖 [root@kolla ~]# yum install -y python-devel libffi-devel gcc openssl-devel \ libselinux-python python2-pip python-pbr ansible 安装常用软件 [root@kolla ~]# yum install -y vim unzip net-tools lrzsz tree bash-completion 部署环境 1、安装 kolla-ansible [root@kolla ~]# tar xf kolla_centos_train_whl.tar.gz [root@kolla ~]# cd kolla_centos_train_whl [root@kolla kolla_centos_train_whl]# ./install.sh 2、配置 准备配置文件 [root@kolla kolla_centos_train_whl]# mkdir -p /etc/kolla [root@kolla kolla_centos_train_whl]# cd /etc/kolla [root@kolla kolla]# chown $USER:$USER /etc/kolla [root@kolla kolla]# cp -r /usr/share/kolla-ansible/etc_examples/kolla/* /etc/kolla [root@kolla kolla]# cp /usr/share/kolla-ansible/ansible/inventory/* /etc/kolla 修改ansible配置文件 [root@kolla kolla]# cat << EOF | sed -i '/^\[defaults\]$/ r /dev/stdin' /etc/ansible/ansible.cfg ho…

openstack 运维
type: item
date: 2021-05-29T08:16:00+00:00
description: Glance 创建镜像 glance image-create --name "cirros-0.3.2" --disk-format qcow2 \ --container-format bare --progress < cirros-0.3.2-x86_64-disk.img 查看镜像列表 glance image-list 查看镜像详细信息 glance image-show <ID> 删除镜像 glance image-delete <ID> 更新镜像 glance image-update [opt] <ID> Nova Nova 对镜像进行管理 通过快照创建镜像。 nova image-create [--show] [--poll] <server> <name> ：做快照的实例的 名字 / ID ：快照名字 查询镜像列表 nova image-list 查询镜像详细信息 nova image-show <image> ： ID / 镜像名字 Nova 管理安全组规则 创建安全组 nova secgroup-create <name> <description> ： 安全组名字 ： 安全组描述 安全组添加规则 nova secgroup-add-rule <secgroup> <ip-proto> <from-port> <to-port> <cidr> : 安全组名字戒者 ID : IP协议(icmp，tcp，udp) ：起始端口 ：结束端口 ：网络地址 Nova 管理虚拟机类型 创建一个虚拟机类型 nova flavor-create [--ephemeral <ephemeral>] 临时磁盘大小，单位为 GB [--swap <swap>] 交换分区大小 [--rxtx-factor <factor>] 传输因子，默认 1 [--is-public<is-public>] 是否共享 <name> <id> <ram> <disk> <vcpus> 固定参数说明: ：虚拟机类型名字 ：虚拟机类型 ID ：虚拟内存大小 ：磁盘大小 ：虚拟内核个数 Nova 实例管理 启动实例 nova boot [--flavor <flavor>] 虚拟机类型 [--image <image>] 选用的镜像 [--image-with <key=value>] 镜像的元数据属性 [--boot-volume <volume_id>] 启动逻辑卷的 ID [--snapshot <snapshot_id>] 快照 [--num-instances <number>] 实例数量 [--meta<key=value>] 元数据 [--file <dst-path=src-path>] 文件 [--key-name <key-name>] 密钥名称 [--user-data <user-data>] 注入的用户数据 [--availability-zone <availability-zone>] 可用域 [--security-groups <security-groups>] 安全组 [--block-device-mapping <dev-name=mapping>] 块存储格式化 [--block-device key1=value1[，key2=value2...]] 块设备参数 [--swap <swap_size>] 交换分区大小 [--ephemeral size=<size>[，format=<format>]] 连接块存储大小 [--hint <key=value>] 自定义数据 [--nic <net-id=net-uuid，v4-fixed-ip=ip-addr，port-id=port-uuid>] 配置 IP [--config-drive <value>] 驱动使能 [--poll] 显示创建进度 <name> ： 实例名称 查看实例列表 nova list 查看实例具体的配置信息 nova flavor-show m1.small 查看该实例在机器的具体位置的命令如下 nova show Cloud_test Nova 对逻辑卷的管理 通过 Nova 创建逻辑卷 nova volume-create [--snapshot-id <snapshot-id>] 通过快照创建逻辑卷的快照ID [--image-id <image-id>] 通过快照创建逻辑卷的镜像ID [--display-name <display-name>] 逻辑卷名称 [--display-description <display-description>] 逻辑卷描述 [--volume-type <volume-type>…

openstact 基础环境安装 (手动版)
type: item
date: 2021-05-11T06:10:00+00:00
description: openstack (xiandian v2.4) 基础配置 双节点： controller （192.168.100.10) compute （192.168.100.20） CentOS版本： CentOS-7-x86_64-DVD-1804.iso openstack版本： xiandian v2.4 (Queens 二次开发） openstack文档： Queens 拓扑 环境变量 密码名称 描述 Database password 数据库的根密码 ADMIN_PASS ADMIN 用户密码 CINDER_DBPASS 块存储服务的数据库密码 CINDER_PASS 块存储服务用户密码 DASH_DBPASS 仪表板的数据库密码 DEMO_PASS DEMO 用户密码 GLANCE_DBPASS 影像服务的数据库密码 GLANCE_PASS 图片服务用户密码 KEYSTONE_DBPASS 身份服务的数据库密码 METADATA_SECRET 元数据代理的秘密 NEUTRON_DBPASS 网络服务的数据库密码 NEUTRON_PASS 网络服务用户密码 NOVA_DBPASS 计算服务的数据库密码 NOVA_PASS 计算服务用户密码 PLACEMENT_PASS 展示位置服务用户的密码 RABBIT_PASS RabbitMQ 用户密码 基础环境(平台初始化) 1.网络 网卡文件：/etc/sysconfig/network-scripts/ifcfg-eth* 【controller】 eth0 echo "DEVICE=eth0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=static IPADDR=192.168.100.10 PREFIX=24 GATEWAY=192.168.100.1"\ > /etc/sysconfig/network-scripts/ifcfg-eth0 eth1 echo "DEVICE=eth1 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=static IPADDR=192.168.200.10 PREFIX=24 > /etc/sysconfig/network-scripts/ifcfg-eth1 修改控制节点 主机名 hostnamectl set-hostname controller bash 【compute】 eth0 echo "DEVICE=eth0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=static IPADDR=192.168.100.20 PREFIX=24 GATEWAY=192.168.100.1"\ > /etc/sysconfig/network-scripts/ifcfg-eth0 eth1 echo "DEVICE=enp9s0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=static IPADDR=192.168.200.20 PREFIX=24"\ > /etc/sysconfig/network-scripts/ifcfg-eth1 修改计算节点 主机名 hostnamectl set-hostname compute bash 注：eth0 为内部管理网络, eth1为外部网络(node节点使用) 2.yum源 使用本地yum 源，yum源仓库位于 controlle节点 yum源备份 mv /etc/yum.repos.d/* /opt 创建 repo 文件 【controller】 echo "[centos] name=centos baseurl=file:///opt/centos gpgcheck=0 enabled=1 [iaas] name=iaas baseurl=file:///opt/iaas-repo gpgcheck=0 enabled=1"\ > /etc/yum.repos.d/centos.repo 【compute 】 echo "[centos] name=centos baseurl=ftp://192.168.100.10/centos gpgcheck=0 enabled=1 [iaas] name=iaas baseurl=ftp://192.168.100.10/iaas-repo gpgcheck=0 enabled=1"\ > /etc/yum.repos.d/centos.repo 将镜像通过 xftp，上传到 controller 挂载 is…

Keystone
type: item
date: 2021-04-13T05:38:00+00:00
description: Keystone 介绍 Keystone（OpenStack Identity Service） Keystone 的功能是负责验证身份、校验服务规则和发布服务令牌，实现OpenStack的Identity API Keystone 可分解为两个功能，即权限管理和服务目录。权限管理主要用于用户的管理授权 服务目录，类似一个服务总线，或者说是整个OpenStack框架的注册表 认证模块提供API服务、Token令牌机制、服务目录、规则和认证发布等功能 相关概念 认证 (Authentication) 认证是确认允许一个用户访问的进程。为了确认请求，OpenStack Identity 会为访问用 户提供证书，起刜这些证书是用户名和密码，戒用户名和 API key。当 OpenStack Identity 学习目标 项目 三 认证服务项目三 认证服务 37 认证体系接受了用户的请求乊后，它会发布一个认证令牌（Token），用户在随后的请求中 使用这个令牌去访问资源中其他的应用。 证书 (Credentials) 用于确认用户身份的数据。例如，用户名、密码戒者 API key，戒认证服务提供的认证 令牌。 令牌 (Token) 通常指的是一串比特值戒者字符串，用来作为访问资源的记号。Token（令牌统一用词） 中含有可访问资源的范围和有效时间，一个令牌是一个任意比特的文本，用于不其他 OpenStack 服务来共享信息，Keystone 以此来提供一个 central location，以验证访问 OpenStack 服务的用户。令牌的有效期是有限的，可以随时被撤回。 项目 (project） project 即项目，早期版本又称为 project，它是各个服务中的一些可以访问的资源集合。 例如，通过 nova 创建虚拟机时要指定到某个项目中，在 cinder 创建卷也要指定到某个项目 中，用户访问项目的资源前，必须不该项目关联，并且指定该用户在该项目下的角色。 平台构建完毕会产生 admin、service 和 demo 三个项目。在这些项目中，admin 项目代 表管理组，拥有平台的最高权限，可以更新、初除和修改系统的任何数据。service 代表平 台内所有服务的总集合，平台安装的所有服务默认会被加入到此项目中，为后期的统一管 理提供帮劣，此项目可以修改当前项目下所有服务的配置信息，提交项目的内容以及修改。 demo 则是一个演示测试项目，没有什么实际的用处。 用户 (User） 使用服务的用户，可以是人、服务戒系统使用 OpenStack 相关服务的一个组织。例如， 一个项目映射到一个 Nova 的“project-id”，在对象存储中，一个项目可以有多个容器。根 据丌同的安装方式，一个项目可以代表一个客户、账号、组织戒项目。用户通过 Keystone Identity 认证登录系统并调用资源。用户可以被分配到特定项目并执行项目相关操作。需要 特别指出的是，OpenStack 通过注册相关服务用户来管理服务，例如 Nova 服务注册 nova 用户来管理相应的服务。对于管理员来说，需要通过 Keystone 来注册管理用户。 角色 (Role) Role 即角色，Role 代表一组用户可以访问的资源权限，例如 Nova 中的虚拟机、Glance 中的镜像。Users 可以被添加到任意一个全局的 role 戒项目内的 role 中。在全局的 role 中， 用户的 role 权限作用于所有的项目，即可以对所有的项目执行 role 规定的权限。在项目内 的 role 中，用户仅能在当前项目内执行 role 规定的权限。 OpenStack 中项目（Project）、用户（User）和角色（Role）3 者的关系如下： 项目是用户的集合，项目又称为项目或 accounts 用户可以属于一个或多个工程 角色决定了用户的权限，可以分配角色给 user-project 组 实践 在openstack系统中进行操作需生效环境变量，执行命令如下 [root@xiandian ~]# source /etc/keystone/admin-openrc.sh 创建用户 创建个名称为“alice”账户，密码为“mypassword123”，邮箱为“alice @example.com”。执行命令如下 [root@xiandian ~]# openstack user create --password mypassword123 --email alice@example.com --domain xiandian alice 格式: # openstack user create [--domain <domain>] [--password …