容器集群api访问
curl --insecure --cert ~/.docker/aliyun/ClusterName/cert.pem --key ~/.docker/aliyun/ClusterName/key.pem https://123.123.123.123:1234/projects/
or
ano@node1:~$ cat .curlrc
cert = /home/ano/cert/cert.pem
key = /home/ano/cert/key.pem
insecure =
curl https://123.123.123.123:1234/projects/
服务器安全(安骑士)Agent如何卸载
#!/bin/bash
#check linux Gentoo os
var=`lsb_release -a | grep Gentoo`
if [ -z "${var}" ]; then
var=`cat /etc/issue | grep Gentoo`
fi
if [ -d "/etc/runlevels/default" -a -n "${var}" ]; then
LINUX_RELEASE="GENTOO"
else
LINUX_RELEASE="OTHER"
fi
stop_aegis(){
killall -9 aegis_cli >/dev/null 2>&1
killall -9 aegis_update >/dev/null 2>&1
killall -9 aegis_cli >/dev/null 2>&1
killall -9 AliYunDun >/dev/null 2>&1
killall -9 AliHids >/dev/null 2>&1
killall -9 AliYunDunUpdate >/dev/null 2>&1
printf "%-40s %40s\n" "Stopping aegis" "[ OK ]"
}
remove_aegis(){
if [ -d /usr/local/aegis ];then
rm -rf /usr/local/aegis/aegis_client
rm -rf /usr/local/aegis/aegis_update
rm -rf /usr/local/aegis/alihids
fi
}
uninstall_service() {
if [ -f "/etc/init.d/aegis" ]; then
/etc/init.d/aegis stop >/dev/null 2>&1
rm -f /etc/init.d/aegis
fi
if [ $LINUX_RELEASE = "GENTOO" ]; then
rc-update del aegis default 2>/dev/null
if [ -f "/etc/runlevels/default/aegis" ]; then
rm -f "/etc/runlevels/default/aegis" >/dev/null 2>&1;
fi
elif [ -f /etc/init.d/aegis ]; then
/etc/init.d/aegis uninstall
for ((var=2; var<=5; var++)) do
if [ -d "/etc/rc${var}.d/" ];then
rm -f "/etc/rc${var}.d/S80aegis"
elif [ -d "/etc/rc.d/rc${var}.d" ];then
rm -f "/etc/rc.d/rc${var}.d/S80aegis"
fi
done
fi
}
stop_aegis
uninstall_service
remove_aegis
printf "%-40s %40s\n" "Uninstalling aegis" "[ OK ]"
如何从源码直接运行:
$ git clone https://github.com/aliyun/aliyun-cli.git
$ cd aliyuncli/aliyuncli
$ python aliyuncli.py ecs DescribeRegions --output json
源码下载后, 可以不安装直接运行, 前提是要安装阿里云python版SDK.
$ pip install virtualenv
$ virtualenv venv
$ . venv/bin/activate
#for ecs
$ pip install aliyun-python-sdk-ecs
#for oss
$ pip install aliyun-python-sdk-oss
#for oss
$ pip install aliyun-python-sdk-oss
$ pip install aliyuncli
#命令行自动补全
$complete -C '~/venv/bin/aliyun_completer' aliyuncli
$echo "complete -C '~/venv/bin/aliyun_completer' aliyuncli">>~/.bash_profile
$ aliyuncli configure(
aliyuncli ecs ConfigVersion)$ cat ~/.aliyuncli/configure
[default]
region = cn-beijing
$aliyuncli configure list
创建实例
$aliyuncli ecs ImportInstance --filename ali-ecs.json$cat ali-ecs.json
{
"RegionId": "cn-beijing",
"ZoneId": "cn-beijing-a",
"IoOptimized": "none",
"InternetChargeType": "PayByTraffic",
"Description": "",
"InstanceId": "i-t2",
"HostName": "t2",
"ClusterId": "",
"ImageId": "ubuntu1404_64_40G_aliaegis_20160222.vhd",
"InstanceChargeType": "PostPaid",
"InstanceNetworkType": "vpc",
"VSwitchId": "vsw-25hjbr6b7",
"PrivateIpAddress": "192.168.1.5",
"InstanceType": "ecs.s1.small",
"InstanceName": "t2",
"Cpu": 1,
"SecurityGroupId": "sg-25i8ahfb7",
"Memory": 2048
}
$aliyuncli ecs AllocateEipAddress
$aliyuncli ecs AssociateEipAddress --InstanceId i-25nl69m89 --AllocationId eip-25dhrq5tr
删除实例
(venv) ano@ano-svr1:~$ aliyuncli ecs StopInstance --InstanceId i-<id>
(venv) ano@ano-svr1:~$ aliyuncli ecs DeleteInstance --InstanceId i-<id>
通过API更换ECS的系统盘的步骤
相较于在控制台上一键更换系统,通过API来更换系统盘需要执行更精细的步骤,具体的步骤为停机、更换系统盘、重置密码、启动ECS,具体的步骤如下(其中API格式以适用于AliyunCLI的命令为例):
1. 停止ECS,可以使用StopInstance方法来停止,如:
aliyuncli ecs StopInstance --InstanceId i-xxxxx
2. 使用ReplaceSystemDisk来更换系统盘,ImageId参数中指定需要更换的镜像ID(该ID可以使用DescribeImages方法来查询可用的镜像ID),:
aliyuncli ecs ReplaceSystemDisk --InstanceId i-xxxxxxxx --ImageId xxxxxxx.vhd
目前系统盘已经支持扩容,若需要在更换时同时扩容系统盘,可以加上SystemDiskSize参数,如:
aliyuncli ecs ReplaceSystemDisk --InstanceId i-xxxxxxxx --ImageId xxxxxxx.vhd --SystemDiskSize 50G
3. 重置密码,使用ModifyInstanceAttribute,指定Password参数来设置新的密码,因为涉及到机密信息,建议使用HTTPS来传输这个API请求
4. 最后使用StartInstance方法启动ECS:
aliyuncli ecs StartInstance --InstanceId i-xxxxxx
aliyuncli oss支持
OSS SDK安装
使用OSS的功能,需要与OSS SDK配合使用,因此需要您安装OSS SDK(默认CLI会自动安装OSS SDK).
推荐采用pip方式
pip 安装SDK会自动帮助您处理好各种依赖还有升级, 因此强烈建议您采用pip方式安装SDK.
您可以直接采用下面的命令安装OSS SDK:
$ sudo pip install aliyun-python-sdk-oss
SDK升级:
sudo pip install --upgrade aliyun-python-sdk-oss
aliyuncli oss 命令说明
下面文档将通过命令说明和使用示范进行oss 命令的展示:
Config
- 命令说明:Config --host oss.aliyuncs.com --accessid accessid --accesskey accesskey --sts_token token 配置aliyuncli 使用的默认host,ID 和KEY。默认的host 为oss.aliyuncs.com如果需要访问oss-internal.aliyuncs.com 可以加上--host oss-internal.aliyuncs.com。
- 使用示范:aliyuncli oss Config --host oss.aliyuncs.com --accessid accessid --accesskey accesskey --sts_token token
GetAllBucket
- 命令说明:GetAllBucket 用来显示用户创建的bucket
- 使用示范:aliyuncli oss GetAllBucket
CreateBucket
- 命令说明:CreateBucket oss://bucket --acl [acl] oss://bucket 表示bucket。--acl 参数可以传入,也可以不传入。
- 使用示范:aliyuncli oss CreateBucket oss://myfirstbucket --acl public-readaliyuncli oss CreateBucket oss://mysecondbucket --acl privatealiyuncli oss CreateBucket oss://mythirdbucket
DeleteBucket
- 命令说明:DeleteBucket oss://bucket 删除bucket 的命令
- 使用示范:aliyuncli oss DeleteBucket oss://mybucketaliyuncli oss DeleteBucket oss://myfirstbucket
DeleteWholeBucket
- 注意:该命令十分危险,将会删除所有的数据,并且不可恢复。请慎重使用。
- 命令说明:DeleteWholeBucket oss://bucket 删除bucket 及其内部object 以及multipart 相关的内容。
- 使用示范:aliyuncli oss DeleteWholeBucket oss://mybucket
GetAcl
- 命令说明:GetAcl oss://bucket 获取bucket 的访问控制权限
- 使用示范:aliyuncli oss GetAcl oss://mybucket
SetAcl
- 命令说明:SetAcl oss://bucket –acl [acl] 修改bucket 的访问控制权限。acl 只允许为private , public-read ,public-read-write 三个当中的一个。
- 使用示范:aliyuncli oss SetAcl oss://mybucket --acl private
List
- 命令说明:List oss://bucket/[prefix] [marker] [delimiter] [maxkeys] 列出bucket 中的object。
- 使用示范:aliyuncli oss List oss://mybucket/folder1/folder2aliyuncli oss List oss://mybucket/folder1/folder2 maker1
MkDir
- 命令说明:MkDir oss://bucket/dirname 创建一个以“/”结尾的object,并且size 为0。
- 使用示范:aliyuncli oss MkDir oss://mybucket/folder
ListAllObject
- 命令说明:ListAllObject oss://bucket/[prefix] 显示bucket 下所有的object,可以指定prefix 来显示。
- 使用示范:aliyuncli oss ListAllObject oss://mybucketaliyuncli oss ListAllObject oss://mybucket/testfolder/
DeleteAllObject
- 命令说明:DeleteAllObject oss://bucket/[prefix] 删除bucket 下所有的object,可以指定特定的prefix 来删除。
- 使用示范:aliyuncli oss DeleteAllObject oss://mybucketaliyuncli oss DeleteAllObject oss://mybucket/testfolder/
DownloadAllObject
- 命令说明:DownloadAllObject oss://bucket/[prefix] localdir --replace false将bucket 下的object 下载到本地目录,并且保持目录结构。可以指定prefix下载。--replace false 表示如果下载时,本地已经存在同名文件,不会覆盖。true 则会覆盖。
- 使用示范:aliyuncli oss DownloadAllObject oss://mybucket /tmp/folderaliyuncli oss DownloadAllObject oss://mybucket /tmp/folder --replace=falsealiyuncli oss DownloadAllObject oss://mybucket /tmp/folder --replace=true
DownloadToDir
- 命令说明:DownloadToDir oss://bucket/[prefix] localdir --replace=false 将bucket 下的object 下载到本地目录,并且保持目录结构。可以指定prefix下载。--replace false 表示如果下载时,本地已经存在同名文件,不会覆盖。true 则会覆盖。同downloadallobject 效果一样。
- 使用示范:aliyuncli oss DownloadToDir oss://mybucket /tmp/folderaliyuncli oss DownloadToDir oss://mybucket /tmp/folder --replace falsealiyuncli oss DownloadToDir oss://mybucket /tmp/folder --replace true
UploadObjectFromLocalDir
- 命令说明:UploadObjectFromLocalDir localdir oss://bucket/[prefix] --check_point check_point_file --replace false --check_md5 false --thread_num 5将本地目录里的文件上传到bucket 中。例如localdir 为/tmp/里面有a/b,a/c,a 三个文件,则上传到OSS 中为oss://bucket/a/b,oss://bucket/a/c,oss://bucket/a。如果指定了prefix 为mytest,则上传到OSS 中为oss://bucket/mytest/a/b,oss://bucket/mytest/a/c,oss://bucket/mytest/a。--check_point check_point_file 是指定文件。指定文件后,osscmd 会将已经上传的本地文件以时间戳的方式放到check_point_file 中,uploadfromdir命令会将正在上传的文件的时间戳和check_point_file 记录的时间戳进行比较。如果有变化则会重新上传,否则跳过。默认情况下是没有check_point_file 的。
- 注意:由于check_point_file 文件中记录的是上传的所有文件的。所以当上传文件特别多的时候,check_point_file 会特别巨大。
- 使用示范:aliyuncli oss UploadObjectFromLocalDir /mytemp/folder oss://mybucketaliyuncli oss UploadObjectFromLocalDir /mytemp/folder oss://mybucket --check_point_file /tmp/mytemp_record.txt
Put
- 命令说明:Put localfile oss://bucket/object --content-type [content_type]--headers "key1:value1, key2:value2" 上传一个本地的文件到bucket 中,可以指定object 的content-type,或则指定自定义的headers。
- 使用示范:aliyuncli oss Put myfile.txt oss://mybucketaliyuncli oss Put myfile.txt oss://mybucket/myobject.txtaliyuncli oss Put myfile.txt oss://mybucket/test.txt --content-type plain/text --headers “x-oss-meta-des:test,x-oss-meta-location:CN”aliyuncli oss Put myfile.txt oss://mybucket/test.txt --content-type plain/text
Get
- 命令说明:Get oss://bucket/object localfile 将object 下载到本地文件。
- 使用示范:aliyuncli oss Get oss://mybucket/myobject /tmp/localfile
MultiGet
- 命令说明:MultiGet oss://bucket/object localfile --thread_num 5 将object 以多线程的方式下载到本地文件。
- 使用示范:aliyuncli oss MultiGet oss://mybucket/myobject /tmp/localfilealiyuncli oss MultiGet oss://mybucket/myobject /tmp/localfile
Cat
- 命令说明:Cat oss://bucket/object 读取object 的内容,直接打印出来。在object 内容比较大的时候请不要使用。
- 使用示范:aliyuncli oss Cat oss://mybucket/myobject
Meta
- 命令说明:Meta oss://bucket/object读取object 的meta 信息,打印出来。meta 信息包括content-type,文件长度,自定义meta 等内容。
- 使用示范:aliyuncli oss Meta oss://mybucket/myobject
Copy
- 命令说明:Copy oss://source_bucket/source_object oss://target_bucket/target_object --headers="key1:value1,key2:value2"将源bucket 的源object 复制到目的bucket 中的目的object。
- 使用示范:aliyuncli oss Copy oss://bucket1/object1 oss://bucket2/object2
Delete
- 命令说明:Delete oss://bucket/object 删除object。
- 使用示范:aliyuncli oss Delete oss://mybucket/myobject
SignUrl
- 命令说明:SignUrl oss://bucket/object --timeout [timeout_seconds] 生成一个包含签名的URL,并指定超时的时间。适用于bucket 为私有时将特定的object 提供给他人访问。
- 使用示范:aliyuncli oss SignUrl oss://mybucket/myobject
Init
- 命令说明:Init oss://bucket/object 初始化生成一个Upload ID。这个Upload ID 可以配合后面的MultiUpload命令来使用。
- 使用示范:aliyuncli oss Init oss://mybucket/myobject
ListPart
- 命令说明:ListPart oss://bucket/object --upload_id xxx显示指定object 的Upload ID 下已经上传的Parts。相关概念见OSS API文档。必须要指定Upload ID。
- 使用示范:aliyuncli oss ListPart oss://mybucket/myobject --upload_id 75835E389EA648C0B93571B6A46023F3
ListParts
- 命令说明:ListPart s oss://bucket显示bucket 中未完成的multipart Upload ID 和object。一般在删除bucket提示bucket 非空的情况下可以用这个命令查看是否有multipart 相关的内容。
- 使用示范:aliyuncli oss ListParts oss://mybucket
GetAllPartSize
- 命令说明:GetAllPartSize oss://bucket 显示bucket 中还存在的Upload ID 已经上传的Parts 的总大小。
- 使用示范:aliyuncli oss GetAllPartSize oss://mybucket
Cancel
- 命令说明:Cancel oss://bucket/object --upload_id xxx 终止Upload ID 对应的Multipart Upload 事件。
- 使用示范:aliyuncli oss Cancel oss://mybucket/myobject --upload_id D9D278DB6F8845E9AFE797DD235DC576
MultiUpload
- 命令说明一:MultiUpload localfile oss://bucket/object 将本地文件以multipart 的方式上传到OSS。
- 使用示范:aliyuncli oss MultiUpload /tmp/localfile.txt oss://mybucket/object
- 命令说明二:MultiUpload localfile oss://bucket/object --upload_id xxx --thread_num 10 --max_part_num 1000将本地文件以multipart 的方式上传到OSS。本地文件划分的块数由max_part_num 来指定。这个命令在实现的时候,会先去判断Upload ID对应的Parts 的ETag 是否和本地文件的MD5 值是否相等,相等则跳过上传。所以如果在使用之前生成一个Upload ID,作为参数传进来。即使上传没有成功,重复执行相同的multiupload 命令可以达到一个断点续传的效果。
- 使用示范:aliyuncli oss MultiUpload /tmp/localfile.txt oss://mybucket/object --upload_id D9D278DB6F8845E9AFE797DD235DC576aliyuncli oss MultiUpload /tmp/localfile.txt oss://mybucket/object --thread_num 5aliyuncli oss MultiUpload /tmp/localfile.txt oss://mybucket/object --max_part_num 100
UploadPartFromFile
- 命令说明:UploadPartFromFile localfile oss://bucket/object --upload_id xx --part_number xxx 主要用于测试,不推荐使用。
UploadPartFromString
- 命令说明:UploadPartFromString oss://bucket/object --upload_id xxx --part_number xxx --data xxx 主要用于测试,不推荐使用。
docker
配置Docker加速器
您可以使用如下的脚本将mirror的配置添加到docker daemon的启动参数中。
echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=https://<your_mir>.mirrror.aliyuncs.com\"" | sudo tee -a /etc/default/docker
https://cr.console.aliyun.com/ 查看
专属加速器地址
[1] https://github.com/aliyun/aliyun-cli
No comments:
Post a Comment