Updated on 2016-10-06

curl - 命令行浏览器

OpenStack 服务提供 RESTful API,而 curl 能通过命令行直接发送和接收 HTTP 的请求和响应

-X [HEAD,POST,GET,PUT,DELETE] # 指定 HTTP 的请求类型     Request
-H "name:123" #添加 HTTP 请求头     Header
-D [123,-] #将 HTTP 响应头输出到[文件,终端]     Dump
-i #同时显示 HTTP 响应头     Include
-I #只显示文档信息     Head
-u admin:pass #登录验证     User
-k #忽略主机密钥(SSL 证书)     Insecure
-s #不显示进度条     Silent
-v #显示详细信息     Verbose
-d @123.json #指定 POST 数据包     Data
-F file=@123.png #指定表单数据     Form
-------------------------------------------------------
-A "Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.20 Mobile Safari/537.36" #指定 User-Agent
-e "www.qq.com" #指定 Referrer URL
-x 10.34.3.71:808 #指定代理服务器
-o "123.7z" #保存至本地
-O #使用服务器上的文件名
-R #使用服务器上的文件修改时间
-b "NAME1=VALUE1; NAME2=VALUE2" #设置 Cookie
-b 123.txt #读取 Cookie
-c 123.txt #保存 Cookie
-C - #断点续传     Continue
-L #自动重定向     Location
--limit-rate 200K #限速

https://curl.haxx.se/windows/
https://curl.haxx.se/docs/manpage.html

curl -s -H "X-Auth-Token:123" http://0.0.0.0:35357/v2.0/tenants | python -mjson.tool #格式化输出 JSON

[root@controller ~]$ a=`keystone token-get | awk 'NR==5{print $4}'`
[root@controller ~]$ echo $a
[root@controller ~]$ curl -H "X-Auth-Token:$a" http://0.0.0.0:35357/v2.0/tenants
-------------------------------------------------------
[root@controller ~]$ keystone --debug tenant-list     v2.0
[root@controller ~]$ glance --debug image-list     v1
[root@controller ~]$ nova --debug list     v2
-------------------------------------------------------
keystone catalog
nova endpoints
-------------------------------------------------------
openstack-status
openstack-service restart

KEYSTONE

keystone token-get | awk 'NR==5{print $4}'     获取 Token     第5行第4列
nova endpoints | grep -A 7 keystone     获取 Endpoint     35357
curl -H "X-Auth-Token:$a" http://0.0.0.0:35357/v2.0/users     返回用户
curl -H "X-Auth-Token:$a" http://0.0.0.0:35357/v2.0/users/123     返回某个用户
curl -H "X-Auth-Token:$a" http://0.0.0.0:35357/v2.0/tenants     返回租户
curl -H "X-Auth-Token:$a" http://0.0.0.0:35357/v2.0/tenants/123     返回某个租户
curl -H "X-Auth-Token:$a" http://0.0.0.0:35357/v2.0/tenants/123/users/123/roles     返回某个租户上用户被授予的角色
curl -H "X-Auth-Token:$a" http://0.0.0.0:35357/v2.0/endpoints     返回服务端点
curl -H "X-Auth-Token:$a" http://0.0.0.0:35357/v2.0/tokens/$a     检验 Token 有效性,并返回 Token 信息
curl -I -H "X-Auth-Token:$a" http://0.0.0.0:35357/v2.0/tokens/$a     使用 Header 校验 Token 有效性
-------------------------------------------------------
keystone user-role-list --user 123 --tenant admin     查看用户在某个租户中的角色
keystone --os-token 123 --os-endpoint http://0.0.0.0:35357/v2.0 user-role-add --user admin --role admin --tenant admin     使用 Token 鉴权     keystone.conf - admin_token = 123
     Token 验证
     export OS_SERVICE_TOKEN=cacb79002f
     export OS_SERVICE_ENDPOINT=http://0.0.0.0:35357/v2.0
     -----------
     Password 验证
     export OS_USERNAME=admin
     export OS_PASSWORD=000000
     export OS_TENANT_NAME=admin
     export OS_AUTH_URL=http://0.0.0.0:35357/v2.0

GLANCE

keystone token-get | awk 'NR==5{print $4}'     获取 Token     第5行第4列
nova endpoints | grep -A 7 glance     获取 Endpoint     9292
curl -H "X-Auth-Token:$a" http://0.0.0.0:9292/v1/images     返回镜像列表
curl -H "X-Auth-Token:$a" http://0.0.0.0:9292/v1/images/detail     返回镜像列表(详细)
curl -H "X-Auth-Token:$a" http://0.0.0.0:9292/v1/images/detail?name=centos     返回某个镜像的详细信息
curl -H "X-Auth-Token:$a" http://0.0.0.0:9292/v2/images     返回镜像列表(详细)
curl -H "X-Auth-Token:$a" http://0.0.0.0:9292/v2/images/123     返回某个镜像的详细信息
curl -I -X HEAD -H "X-Auth-Token:$a" http://0.0.0.0:9292/v1/images/123     返回某个镜像的 Metadata
curl -X GET -H "X-Auth-Token:$a" http://0.0.0.0:9292/v1/images/123 > test.img     下载某个镜像
-------------------------------------------------------
glance image-create --name centos6.5 --disk-format qcow2 --container-format bare --is-public True --progress < centos_65_x86_6420140327.qcow2     上传镜像
glance image-update centos6.5 --property hw_disk_bus=scsi --property hw_scsi_model=virtio-scsi     更新镜像
glance image-update centos6.5 --name centos6.5_scsi     更新镜像
     Property:
     hw_disk_bus=scsi
     hw_scsi_model=virtio-scsi
     hw_cdrom_bus=ide
-------------------------------------------------------
CirrOS
https://download.cirros-cloud.net/
user:cirros     password:gocubsgo
glance image-create --name cirros --disk-format qcow2 --container-format bare < cirros-0.3.4-x86_64-disk.img

NOVA

nova secgroup-list     列出安全组
nova secgroup-list-rules default     查看安全组
nova secgroup-add-rule default tcp 1 65535 0.0.0.0/0     添加规则
nova secgroup-add-rule default udp 1 65535 0.0.0.0/0     添加规则
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0     添加规则
-------------------------------------------------------
nova keypair-list     列出密钥对
nova keypair-add 123 > 123.priv     创建密钥对
nova keypair-add --pub-key /root/.ssh/id_rsa.pub 123     添加密钥对     事先已做 ssh-keygen
-------------------------------------------------------
nova flavor-list     列出 VM 类型
nova flavor-create 123 auto 1024 20 1     创建 VM 类型     名称 编号 内存 磁盘 内核
-------------------------------------------------------
nova boot --flavor m1.small --image centos6.5 --nic net-id=17589f7c-0504-4485-8c13-53f1b306eab1 123     创建实例
nova list     列出实例     virsh list --all
nova show 123     查看实例
nova suspend 123     暂停实例
nova resume 123     恢复实例
nova start 123     启动实例
nova stop 123     停止实例
nova reboot 123     重启实例
nova delete 123     终止实例
nova rename 123 swift     重命名实例
nova image-create 123 snapshot1     为实例创建快照
nova console-log 123     查看启动日志
nova get-vnc-console 123 novnc     获取 VNC URL,通过游览器访问
nova usage-list     列出平台资源使用情况
nova hypervisor-stats     列出虚拟机监控器统计数据
-------------------------------------------------------
nova volume-list     列出云硬盘     CINDER
nova volume-show test     显示云硬盘     CINDER
nova volume-create --display-name test 1     创建云硬盘     CINDER
nova volume-attach 123 5495c0aa-896d-4a50-b40f-3a0730cd6a64     为实例挂载云硬盘     CINDER
nova volume-detach 123 5495c0aa-896d-4a50-b40f-3a0730cd6a64     为实例断开云硬盘     CINDER
-------------------------------------------------------
nova floating-ip-pool-list     列出浮动 IP 池(外部网络)     GRE网络
nova floating-ip-list     列出获取的浮动 IP     GRE网络
nova floating-ip-create ext     获取浮动 IP     GRE网络
nova floating-ip-associate 123 192.168.200.105     关联浮动 IP     GRE网络

CINDER

3:MySQL+KEYSTONE+CINDER
-------------------------------------------------------

SWIFT

3:MySQL+KEYSTONE+SWIFT
-------------------------------------------------------
swift-init all restart     重新启动所有 SWIFT 服务
swift -U 1:1 -K 1 -V 2 -A http://0.0.0.0:35357/v2.0 stat     查看特定用户信息
swift --os-username=1 --os-password=1 --os-tenant-name=1 --os-auth-url=http://0.0.0.0:35357/v2.0 stat     查看特定用户信息

Heat

heat stack-list     列出栈
heat stack-create -f server.yml  -P ImageID=centos6.5 -P NetID=int mystack     创建栈
heat event-list mystack     查看栈的事件日志
heat event-show mystack server1 d9c12983-d4df-42ad-bd01-350c9b8abfd6     查看事件日志的详细信息

Ceilometer

ceilometer meter-list     查看所有测量值
ceilometer resource-list     查看所有资源
ceilometer resource-show -r  a3f74bc8-8200-4345-9f07-fa4aae11567d     查看资源详情

Sahara

ssh cloud-user@192.168.200.104
sudo passwd root #修改 root 密码
su #转到 root 用户
passwd cloud-user #修改 cloud-user 密码
passwd hadoop #修改 hadoop 密码
su hadoop #转到 hadoop 用户
jps #查看 Hadoop 进程,开始 Hadoop 操作 >>>

GLANCE

使用未加 SCSI 属性的镜像创建的VM - virtio-blk

使用已加 SCSI 属性的镜像创建的VM - virtio-scsi(更灵活、更具扩展性)