一、keystone 身份认证服务
要求:知道如何在页面上新增用户、租户、给用户分配角色、配额 就ok了
ssh trystack@172.25.0.10 进入自己的openstack
1.1、切换用户(admin):
source /home/devstack/openrc admin
1.2、获取环境变量 :
export | grep OS
其中:
OS_AUTH_TYPE=“password” : “密码验证
OS_AUTH_URL=“http://172.25.0.10/identity” : keystone的Ip地址
OS_CACERT=“” :当 keystone的Ip地址 是 https的访问方式的时候,如果要信任此地址的话,就要在此加上证书,否则在该https命令后 要 加 --insecre,代表这个http虽然是不受信的,但是也可以用
OS_IDENTITY_API_VERSION=“3” : keystone 的版本
OS_PASSWORD=“trystack” 该用户的密码
OS_PROJECT_DOMAIN_ID=“default”:租户domin的ID
OS_PROJECT_NAME=“demo” :当前用户所在租户的名字
OS_REGION_NAME=“RegionOne”: 多个regoin的Openstack 共享
OS_TENANT_NAME=“demo” :当前用户所在租户的名字
OS_USERNAME=“admin”:用户名
OS_USER_DOMAIN_ID=“default”:该用户 domin的Id
OS_VOLUME_API_VERSION=“3”
1.3、验证 keystone v3 api 运行是否正常**
curl http://172.25.0.10/identity
1.4、若 keystone 版本不是v3 要修改其版本为 v3
stack@trystack:/home/devstack$ export OS_AUTH_URL=“http://172.16.202.xx:5000/v3”
stack@trystack:/home/devstack$ export OS_IDENTITY_API_VERSION="3
验证结果
openstack domain list
1.5、这个时候 换到 demo用户 再查询用户列表时,就会报 demo用户没有权限
为什么没有权限:因为 keystone 的 policy.json 要求 获取用户列表 必须有个角色为 admin
keystone的policy.json文件
此时 输入命令 export 后 再修改其username 为 admin 相当于 把当前用户切换到了admin用户
再查询用户列表命令 openstack user list == admin用户查看 用户列表
用户就可以查到了 == admin用户
如何校验自己修改的是否正确
openstack token issue 用自己的用户名和密码 拿到token 验证是否正确
根据token的 userId发现当前用户为 admin
1.6、简化切换用户命令 [给用户配API]
source /home/devstack/openrc admin 这个是原本的命令
简化操作:
declare -x OS_AUTH_TYPE="password"declare -x OS_AUTH_URL="http://172.25.0.10/identity"declare -x OS_CACERT=""declare -x OS_IDENTITY_API_VERSION="3"declare -x OS_PASSWORD="trystack"declare -x OS_PROJECT_DOMAIN_ID="default"declare -x OS_PROJECT_NAME="demo"declare -x OS_REGION_NAME="RegionOne"declare -x OS_TENANT_NAME="demo"declare -x OS_USERNAME="admin"declare -x OS_USER_DOMAIN_ID="default"declare -x OS_VOLUME_API_VERSION="3"
vi adminrc 将内容粘贴 :wq 保存退出vi demorc 将内容粘贴 :wq 保存退出 【如果username不是demo 改为demo】切换用户命令
source adminrc 切换 admin
source demorc 切换 demo
1.7 、 服务操作
1.7.1 、创建 服务
openstack service create --name lsService lsService
1.7.2、 创建 服务终点
1、获取 一个服务终点 list 从而拿到一个ip 作为demo
openstack endopint list
openstack endpoint create lsService public http://172.25.0.10/lsService/v1
4、查看本服务的 服务终点
openstack endpoint list --service lsService
1.8、 租户操作
1.8.1、新增租户
openstack project create --description “测试租户” lsProject1
1.8.2、修改租户
openstack project set --description “李氏集团1” lsProject1
1.8.3、删除租户
openstack project delete lsProject1
1.8.4、查询租户
openstack project list --long
1.9 、用户操作
1.9.1、新增用户
openstack user create --project lsProject --password ls003 --domain lsDomain ls003
1.9.2、修改用户
openstack user set --email 1399091914@qq.com ls003
1.9.3、查看用户
openstack user list --long
1.9.4、删除用户
openstack user delete LSLSCLEAR
1.9.5、删除用户 给用户添加角色 、租户
openstack role add --user ls002 --project lsProject admin
1.9.6、给用户简化切换【配API】
cp adminrc ls002rc
vi ls002rc 【修改租户名、密码、用户名】
source ls002rc
1.9.7、查看某个用户详细
openstack user show ls002
1.10、打印日志
openstack user list --debug
1.11、domain 操作
1.11.1 、创建domain
openstack domain create mydomain --description “enterprise 1”
1.11.2 、修改domain
openstack domain set --name lsDomain --description “这是李双的domain” lsDomain
1.11.3 、删除domain
注意:删除之前 要先把 该domain 更新为 disable
openstack domain set --disable lsDomain1
再删除
openstack domain delete lsDomain1
1.11.4 、查看domain
openstack domain list
1.12、验证keystone服务的运行
systemctl status apache2
1.13、获取当前用户的token
openstack token issue
二、Nova计算服务
创建实例、浮动ip 以及 通过命令 ssh连接 控制台
2.1、配额管理(flavor)
openStack为每个租户设置了配额,通过设置配额控制租户的最大资源使用量,更好的管理资源。
2.1.1、查看租户的配额
openstack quota show demo :demo租户的配额
2.1.2、修改租户的配额
修改vcpu 15 并实例最大为8个
openstack quota set --cores 15 --instance 8 demo
2.1.3、查看所有配额
openstack flavor list
2.1.4、创建配额
我们创建一个满足我们需求的 flavor: 2vcups、5G disk、1048RAM:
openstack flavor create --vcpus 2 --disk 5 --ram 1048 lsflavor
2.1.5、删除配额
openstack flavor delete lsflavor
2.2、镜像管理
2.2.1、获取所有镜像
glance image-list
2.2.2、上传 镜像到 glance中
把 cirros-0.3.4-x86_64-disk.img 上传到 glance 中
*openstack image create --disk-format qcow2 --container-format bare --public --file cirros-0.3.4-x86_64-disk.img cirros
2.3、密钥对(keypair)
每次创建一个实例我们一般都需要创建一个 keypair 来对应实例
我们要创建一个安全组给 demo 用户所在的项目(租户)demo 来使用,那么我们
需要切换到 demo 用户:
2.3.1、创建密钥对
openstack keypair create key1 > key1.pem
2.3.2、查看密钥对列表
openstack keypair list
2.4、安全组(security group)
默认的安全策略组 default 是不允许 icmp、ssh、http 等请求的,一般的做法是
不去修改 default 的安全组,而是创建一个新的安全组。
2.4.1、查看安全组
openstack security group list
2.4.2、创建安全组
openstack security group create mysec
2.4.3、添加 icmp 规则:
openstack security group rule create --proto icmp mysec
2.4.4、添加 ssh 规则:
openstack security group rule create --proto tcp --dst-port 22 mysec
2.4.5、添加 http 规则
openstack security group rule create --proto tcp --dst-port 80 mysec
2.4.6、删除安全组
**openstack security group delete mysec **
2.5、浮动 ip(floating ip)
在项目(租户)网络的实例,是不能被外部直接访问的,这时我们需要分配一个floating ip 给这个实例
2.5.1、查看 floating ip 列表
openstack floating ip list
2.5.2、创建floating ip
注意最后的那个 public 参数是 devstack 预建的 external 网络,你可以用
openstack network list 和 openstack network show [network name]来查看
哪个网路才是 external 网络。
openstack floating ip create public
2.6、实例管理【重点】
----- 实例 === 虚拟机====
2.6.1、查看现有的 实例
openstack server list
2.6.2、创建实例
openstack server create --image cirros-0.5.1-x86_64-disk --flavor cirros256 --security-group default --key-name key1 --nic net-id=8a101bfc-b894-40e4-9de0-e8c1e29c4cdf instance1
其中 创建 浮动ip后 通过 **openstack network list ** 获取其 net id;
2.6.3、检验实例状态
openstack server list
当 Status 是 ACTIVE 的时候说明实例运行正常
2.6.4、停止实例
openstack server stop instance1
2.6.5、删除实例
openstack server delete instance1
2.6.6、实例和安全组的绑定
创建实例的时候我们设置的default 安全组,它几乎限制了所有的ingress[入口]
我们为 实例添加之前创建的安全组
openstack server add security group instance1 mysec
查看 该实例 可以看到有两个安全组
2.6.7、实例绑定 浮动ip [floating IP ]
openstack server add floating ip instance1 172.25.0.228
这是个 报错 我不理解 为啥不行
2.7 镜像管理
我们可以对运行中的实例 做一个 快照,快照完成会保存为镜像,以便下次直接从快照的镜像启动
2.7.1 、创建镜像
openstack server image create --name myCirros instance1
2.7.2、查看镜像列表
openstack image list
2.7 实例的 控制台(console)
openstack 默认连接实例的console 使用的是vnc,如果你需要多连接和GPU加速的话,你可能需要使用其他的console。
比如 spice 我们来配置下 spice :
2.7.1、修改配置
首先我们要修改 nova 配置 /etc/nova/nova/conf,修改【vnc】将 enable 的值改成 false;
====================================
2.8、检查计算服务
我们经常需要检查服务的运行是否正常,比如检查计算节点上的计算服务是否正常
2.8.1、检查计算节点
systemctl status devstack@n-cpu
2.8.2、检查控制节点
在控制节点上运行以下命令:
stack@trystack:/home/devstack$ systemctl status devstack@n-api
stack@trystack:/home/devstack$ systemctl status devstack@n-sch
stack@trystack:/home/devstack$ systemctl status devstack@n-cond
stack@trystack:/home/devstack$ systemctl status devstack@n-cauth