阿里云命令行工具安装与使用

2017-10-03  本文已影响0人  墨明棋妙的兜兜

为什么要使用阿里云的命令行工具

是不是吃饱了撑了,非要用命令行,明明人家啥操作都已经封装好了界面,直接用不就完事了嘛。就以我司为例,使用了阿里云的负载均衡。每次发布都是这个流程,先到阿里云官网把服务器A从负载中切掉,然后A发布代码,把A再丢到负载里,把B从负载中切掉,B发布代码,再把B丢到负载里,这种人工操作首先很麻烦,其次,搞不好还会出错。但是如果使用命令行工具,把切换负载的命令写到shell脚本里面,只要执行脚本,就啥问题都没了,不用登陆什么阿里云官网搞来搞去的。

写在前面

阿里云服务器命令行是基于python脚本的,其实centos是自带了python环境的,但是很坑爹的是自带的python环境是2.6.6,阿里云命令行却需要2.7.8才能带的动。阿里云命令行教程在官网上非常简明易懂,反而升级python版本比较麻烦,所以本教程大部分内容是教怎么升级python版本。

准备工作

以root身份进入系统,因为要装不少东西,所以必须是以root身份

yum install openssl-devel -y

yum install zlib*

这两行命令行在最先执行,因为一旦升级了python版本,yum就不能用了,这个非常坑爹,我之前就是先升级了python版本,执行这两行报错 ,以为系统没有yum,就花了大量的时间装了yum,其实先执行这两行就没那么多事了,所以以后如果还想用yum的话,切回老版本python,yum还是可以继续用的

查看python版本:python -V

升级python版本

mkdir /tmp/python

cd /tmp/python/

wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz

下载这个还是比较慢的,如果有快的网址的话,欢迎更新

tar -zxvf Python-2.7.8.tgz

我比较倾向于把这个移到别的地方,放在/tmp下怪怪的,所以

mkdir /usr/python

mv /tmp/python/Python-2.7.8 /usr/python/

cd /usr/python/Python-2.7.8

./configure

编译python前修改一个文件

vim Modules/Setup

zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz

SSL=/usr/local/ssl
_ssl _ssl.c \
        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
        -L$(SSL)/lib -lssl -lcrypto

这五行前的注释去掉

然后可以编译了

make

make install

编译完了之后 执行 python -V 看一下python版本

有些机器上编译完了之后 python版本就成了2.7.8 ,有些还是2.6.6

如果编译python顺利成了2.7.8就别管了

如果还是2.6.6

执行下面

mv /usr/bin/python /usr/bin/python.old

ln -s /usr/python/Python-2.7.8/python /usr/bin/python

再看一下版本,不出意外应该就是2.7.8 了

安装阿里云命令行工具

cd /tmp/

curl "https://bootstrap.pypa.io/get-pip.py" -o "pip-install.py"

python pip-install.py

pip是python常用的依赖导入工具,类似maven

pip install aliyuncli

pip install aliyun-python-sdk-slb

用pip导入阿里云命令行的两个sdk,下面那个是负载的sdk,因为我们主要是用来切负载,所以安装这个,阿里云官网上还有别的sdk,几乎所有在阿里云官网上能做的操作,命令行都涵盖了。

执行阿里云命令行

这时候 exit 退出root

用自己账号登录服务器

aliyuncli configure

分别输入Access Key ID,Access Key Secret,Region Id,output format

前三个必须得填写,不然执行不了脚本,最后一个默认就是json,直接回车就好了

然后可以执行 切换负载的脚本试一下

aliyuncli slb RemoveBackendServers --LoadBalancerId xx --BackendServers "['yy']"

aliyuncli slb AddBackendServers --LoadBalancerId xx --BackendServers "[{'ServerId':'yy'}]"

上面那个是移除负载的脚本 ,下面那个是 添加负载的脚本

以后写执行脚本 ,就可以写成这样

aliyuncli slb RemoveBackendServers --LoadBalancerId xx --BackendServers "['yy']"

sh deploy.sh

sleep 60

aliyuncli slb AddBackendServers --LoadBalancerId xx --BackendServers "[{'ServerId':'yy'}]"

先执行移除负载,然后启动项目,睡眠60秒,最后添加负载

上一篇下一篇

猜你喜欢

热点阅读