频道栏目
首页 > 资讯 > 云计算 > 正文

怎样截取Swarm集群令牌?shell命令输出的信息,截取其中一段,作为字符串变量

17-06-19        来源:[db:作者]  
收藏   我要投稿

问题:

在创建Docker Swarm集群的过程中,执行完docker swarm init 命令以后,集群就已经创建好了,可以通过 docker swarm join-token manager 命令和docker swarm join-token worker命令,分别显示管理节点和工作节点加入到集群的命令,其中有令牌的信息。

一般通过手工复制提示信息中的整个命令,也能顺利的将其余的管理节点和工作节点加入到 Swarm 集群中。但如果能够通过shell编程,截取命令输出信息中的固定长度的令牌信息,就可以实现Docker Swarm集群创建过程的自动化,截取令牌,非常有用。

 

解决:

1、将命令输出通过grep token过滤,得到一行字符串,其中包含令牌;

2、从字符串变量中截取第x到第y位置的字符串,这就是令牌字符串;

 

# 原始输出:

$ docker swarm join-token manager

To add a manager to this swarm, run the following command:

docker swarm join \

--token SWMTKN-1-18foycvyym1btrks0xshjoh2a51kg1wkf90qlnd601op1owj9e-477vghk0

mw93l7nklgt9mehgv \

192.168.99.118:2377

 

$ docker swarm join-token worker

To add a worker to this swarm, run the following command:

docker swarm join \

--token SWMTKN-1-18foycvyym1btrks0xshjoh2a51kg1wkf90qlnd601op1owj9e-blqzz5y4

8jbd61j0ywzbgvkp9 \

192.168.99.118:2377

 

# 使用grep token 过滤后的输出

$ docker swarm join-token manager|grep token

--token SWMTKN-1-18foycvyym1btrks0xshjoh2a51kg1wkf90qlnd601op1owj9e-477vghk0

mw93l7nklgt9mehgv \

 

$ docker swarm join-token worker|grep token

--token SWMTKN-1-18foycvyym1btrks0xshjoh2a51kg1wkf90qlnd601op1owj9e-blqzz5y4

8jbd61j0ywzbgvkp9 \

 

代码:

#切换到主控节点manager1上

eval $(docker-machine env manager1)

 

#显示管理节点加入集群的信息,截取其中的令牌作为变量

#T1是上面管理节点加入集群的整个字符串,

#包含前面4个无用的空格和--token及空格8个字符,一共12个字符,

#${T1:12:85},截取T1字符串,从第12个到85个,刚好是令牌。

T1=`docker swarm join-token manager|grep token`

TM=${T1:12:85}

Echo 管理节点令牌: $TM

 

#显示工作节点加入集群的信息,截取其中的令牌作为变量

#T2是工作节点的

T2=`docker swarm join-token worker|grep token`

TW=${T2:12:85}

Echo 工作节点令牌: $TW

 

#TM字符串变量是管理节点加入的令牌

#TW字符串变量是工作节点加入的令牌

#便于后面编程使用

 

命令:

eval $(docker-machine env manager1)

T1=`docker swarm join-token manager|grep token`

TM=${T1:12:85}

Echo 管理节点令牌: $TM

T2=`docker swarm join-token worker|grep token`

TW=${T2:12:85}

Echo 工作节点令牌: $TW

 

截图:

 

后记:

#1、既然已经得到T1=`docker swarm join-token manager|grep token`这个变量,是否可以直接利用T1这个变量到 集群的创建命令中?有待验证。

#T1 的值是“ --token SWMTKN-1-18foycvyym1btrks0xshjoh2a51kg1wkf90qlnd601op1owj9e-477vghk0mw93l7nklgt9mehgv \”

 

 

# 2、字符串截取操作的例子

$var1=cowabunga
$echo ${var:0:3}
cow
$echo ${var1:3:7}
abunga


相关TAG标签
上一篇:easyui之datagrid控件分析
下一篇:javascript性能优化-1
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站