有一段时间没有弄openstack了,算来算去弄openstack也差不多三年了,但是直接跳过去再弄个别的说不过去啊,看到openstack有了coa认证,就报了个名,培训嘛,对于咱们趟着坑走的人来说就算了,得硬气点儿不是,哈哈!不过毕竟是考试,还是得好好准备一下的。这里面我本地用devstack搭的N版环境,做一些基本的练习哈!
考试技能要求
Keystone
手写RC
使用命令行的话少不了用RC文件啊,登陆dashboard就能下载,但是如果dashboard有坑或者没有dashboard的时候手写一个rc也不错:
1 2 3 4 5 6 7 8
| unset OS_SERVICE_TOKEN unset OS_PROJECT_NAME unset OS_PROJECT_ID export OS_TENANT_NAME="admin" export OS_USERNAME="admin" export OS_PASSWORD="password" export OS_AUTH_URL="<keystone_endpoint>" export OS_IDENTITY_API_VERSION=<version>
|
创建service
创建endpoint
domain操作
Nova
创建主机
使用命令行创建虚拟机,其实一个虚拟机和我们常用的电脑差不多,基本的cpu、网络、镜像、规格要明确,访问的话用的key以及限制是什么样的,这样想就好记多了,基本的参数有以下几个:
- 名称
- 网络
- key
- flavor
- image
- 安全组
1 2 3 4 5 6 7
| nova boot \ <name> \ --flavor <flavor_name> \ --image <image_id> \ --nic net-name=<net_id> \ --key-name <keypair-name> \ --security-groups <security-group-id>
|
创建flavor
1 2 3 4 5 6 7
| nova flavor-create\ <name> \ <auto> \ <ram> \ <disk> \ <cpu> \ --is-public <true/false>
|
flavor添加租户权限
1 2 3
| nova flavor-access-add \ <flavor-id> \ <tenant-id>
|
default安全组中添加规则允许外部访问虚拟机ssh、http以及icmp
1 2 3
| openstack security group rule create --proto icmp --src-ip 0.0.0.0/0 <security_group_id> openstack security group rule create --proto tcp --src-ip 0.0.0.0/0 --dst-port 22 <security_group_id> openstack security group rule create --proto tcp --src-ip 0.0.0.0/0 --dst-port 80 <security_group_id>
|
创建floating-ip
分配floating-ip到虚拟机
1 2 3
| nova floating-ip-associate \ <server> \ <ext-ip-addr>
|
创建快照
1 2 3
| nova image-create \ <server-name> \ <snapshot-name>
|
Neutron
创建私有net
1 2 3 4
| neutron net-create \ <name> \ --provider:network-type <type> ...
|
创建subnet
1 2 3 4 5 6
| neutron subnet-create \ <network-name> \ <CIDR> \ --name <subnet-name> \ --enable-dhcp \ ...
|
router添加接口
1 2 3
| neutron router-interface-add \ <router> \ <subnet>
|
Quota设置
设置gigabytes、networks、subnets
1 2 3
| openstack quota set --gigabytes <size> openstack quota set --networks <size> openstack quota set --subnets <size>
|
设置backups配额
1
| cinder quota-update --backups <size> <project>
|
更新所有项目默认配额
1 2 3 4 5
| nova quota-class-update \ --instacnes <size> \ --cores <size> \ ... default
|
更新指定用户配额
1 2
| nova quota-update --user <user_id> \ ...
|
Cinder
创建volume
1 2 3 4
| cinder create \ <size> \ --name <name> --volume-type <type-id>
|
查看挂载信息
1
| nova volume-attachments <server>
|
attach volume
1 2 3
| nova volume-attach \ <server> \ <volume-id>
|
detach volume
1 2 3
| nova volume-detach \ <server> \ <volume-id>
|
创建卷快照
1 2 3
| cinder snapshot-create \ --name <snap-name> \ <volume-id>
|
查看快照
从快照创建卷
1 2 3
| cinder create \ --snapshot-id <snapshot-id> \ --name <snapshot-name>
|
创建backups
1 2 3
| cinder backup-create \ <volume-id> \ --name <name> \
|
backup resotre
cinder块加密type创建
1 2 3 4 5 6 7
| openstack volume type create LUKS
cinder encryption-type-create \ --cipher aes-xts-plain64 --key_size 512 \ --control_location front-end \ LUKS \ nova.volume.encryptors.luks.LuksEncryptor
|
创建加密卷
使用加密卷类型创建即可,其他与正常创建卷一样
1 2 3 4
| cinder create \ <size> \ --volume-type LUKS \ --name <name>
|
验证加密卷的有效性
卷加密后如果没有
swift
上传文件到container,删除文件
1 2
| swift upload <container_name> file swift delete <container_name> file
|