运维编排场景系列----给实例加到SLS机器组

场景简介

我们经常会有这样的运维场景,扩容一批机器需要配置SLS日志,对于已经配置好的SLS Logstore后,我们只需要将机器加到机器组里。

解决方案

传统的解决方案是登录每台ecs实例并安装logtail,执行的命令为

wget http://logtail-release-{{ACS::RegionId}}.oss-{{ACS::RegionId}}-internal.aliyuncs.com/linux64/logtail.sh-O logtail.sh; chmod 755 logtail.sh; ./logtail.sh install {{ACS::RegionId}};
echo {{ LogTailUserDefinedId }} > /etc/ilogtail/user_defined_id

分解下Task,需要以下几步:
1.检查实例是不是Running状态
2.调用云助手CreateCommand创建上述命令
3.调用InvokeCommand执行
4.等待执行成功
5.删除模板

再转换成OOS模板并创建命名为installSlsAgent

{"FormatVersion": "OOS-2019-06-01","Description": "Install Logtail agent on the ECS Instance.","Parameters": {"InstanceId": {"Type": "String","Description": "the Instance Id to install ilogtail","AllowedPattern": "i-[A-Za-z0-9]*","MinLength": 1,"MaxLength": 30},"LogTailUserDefinedId": {"Type": "String","Description": "the user defined Id write to /etc/ilogtail/user_defined_id","AllowedPattern": "[A-Za-z0-9\\-_]*","MinLength": 1,"MaxLength": 30},"OOSAssumeRole": {"Type": "String","Description": "The RAM role to be assumed by OOS.","Default": "OOSServiceRole"}},"RamRole": "{{OOSAssumeRole}}","Tasks": [{"Name": "checkInstanceReady","Action": "ACS::CheckFor","Description": "describe instances with specified parameters, refer them here: https://help.aliyun.com/document_detail/63440.html","Properties": {"API": "DescribeInstances","Service": "ECS","PropertySelector": "Instances.Instance[].Status","DesiredValues": ["Running"],"Parameters": {"InstanceIds": ["{{ InstanceId }}"]}},"Outputs": {"InstanceIds": {"ValueSelector": "InstanceIdSets.InstanceIdSet[]","Type": "List"}}},{"Name": "createCommand","Action": "ACS::ExecuteApi","Description": "create the command to install logtail agent.","Properties": {"API": "CreateCommand","Service": "ECS","Parameters": {"CommandContent": {"Fn::Base64Encode": "wget http://logtail-release-{{ACS::RegionId}}.oss-{{ACS::RegionId}}-internal.aliyuncs.com/linux64/logtail.sh -O logtail.sh; chmod 755 logtail.sh; ./logtail.sh install {{ACS::RegionId}}; echo {{ LogTailUserDefinedId }} > /etc/ilogtail/user_defined_id"},"Name": "oos-{{ACS::TemplateName}}","Type": "RunShellScript"}},"Outputs": {"CommandId": {"Type": "String","ValueSelector": "CommandId"}}},{"Name": "invokeCommand","Action": "ACS::ExecuteApi","Description": "invoke the command to install ilogtail","Properties": {"Service": "ECS","API": "InvokeCommand","Parameters": {"CommandId": "{{ createCommand.CommandId }}","InstanceIds": ["{{ InstanceId }}"]}},"Outputs": {"InvokeId": {"Type": "String","ValueSelector": "InvokeId"}}},{"Name": "untilInvocationDone","Action": "ACS::WaitFor","Description": "until invocation ready","MaxAttempts": 5,"Properties": {"Service": "ECS","API": "DescribeInvocations","Parameters": {"InvokeId": "{{  invokeCommand.InvokeId }}"},"DesiredValues": ["Finished"],"PropertySelector": "Invocations.Invocation[].InvokeStatus"}},{"Name": "describeInvocationResult","Action": "ACS::ExecuteApi","Description": "get the command invocation result","Properties": {"Service": "Ecs","API": "DescribeInvocationResults","Parameters": {"InvokeId": "{{ invokeCommand.InvokeId }}"}},"Outputs": {"InvocationResult": {"Type": "String","ValueSelector": "Invocation.InvocationResults.InvocationResult[].Output"},"ExitCode": {"Type": "Number","ValueSelector": "Invocation.InvocationResults.InvocationResult[].ExitCode"}}},{"Name": "deleteCommand","Action": "ACS::ExecuteAPI","Description": "clean up the install ilogtail command","Properties": {"Service": "ECS","Risk": "Normal","API": "DeleteCommand","Parameters": {"CommandId": "{{ createCommand.CommandId }}"}}}],"Outputs": {"InvocationResult": {"Type": "String","Value": {"Fn::Base64Decode": "{{ describeInvocationResult.InvocationResult }}"}},"ExitCode": {"Type": "String","Value": "{{ describeInvocationResult.ExitCode }}"}}
}

以上模板我们很好的解决了单台机器执行Install sls Agent的任务,那么对于多台机器的执行怎么办呢?OOS的Loop功能可以很好的解决这个问题。并且OOS支持模板嵌套执行,那么我们只需要构建一个传入实例ID列表的

{"FormatVersion": "OOS-2019-06-01","Parameters": {"InstanceIds":{"Type": "List","Description": "the instance id list"},"LogTailUserDefinedId": {"Type": "String","Description": "log tail user defined id","MinLength": 1,"MaxLength": 30}},"Tasks": [{"Properties": {"TemplateName": "installSlsAgent","Parameters": {"InstanceId": "{{ ACS::TaskLoopItem }}","LogTailUserDefinedId": "{{ LogTailUserDefinedId }}"}},"Name": "installSLSAgent","Action": "ACS::Template","Outputs": {"ExitCode": {"ValueSelector": "ExitCode","Type": "Number"}},"Loop": {"Items": "{{ InstanceIds }}","MaxErrors": 100,"Concurrency": 10,"Outputs": {}}}],"Outputs": {}
}

创建一个执行

执行后看详细信息,发现执行已经成功并且可以看到每个loop子task的状态

由于子task是一个嵌套执行,我们点击可以看到嵌套的模板执行情况

最后到机器组查看机器状态OK说明已经执行成功

总结

以上我们介绍了如何使用资源编排OOS批量安装SLS-Agent并加入到机器组中,更多场景待挖掘。目前运维编排(OOS)处于内测中,欢迎试用提意见


原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/518459.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UI2CODE复杂背景无法识别?闲鱼工程师这样打造高准确率方案

引言: 复杂背景内容提取指的是从复杂的背景中提取出特定的内容,例如在图片中提取特定的文字,在图片中提取特定的叠加图层等等。 这是一个业界难题,基于传统的图像处理的方法存在准确率和召回率的问题,没法解决语义的问题。而主流…

万字干货:一步步教你如何在容器上构建持续部署!

作者| 倚天码农责编| 徐威龙封图| CSDN下载于视觉中国要想理解持续集成和持续部署,先要了解它的部分组成,以及各个组成部分之间的关系。下面这张图是我见过的最简洁、清晰的持续部署和集成的关系图。图源:sonatype持续部署如上图所示&#xf…

html-列表标签

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>列表学习</title> </head> <body><!-- 有序列表 应用范围&#xff1a; 试卷&#xff0c;问答。。。 --> <ol><li>…

阿里云环境中TLS/SSL握手失败的场景分析

TLS/SSL握手是一个相对复杂的过程&#xff0c;在阿里云环境中结合产品&#xff0c;安全等特性&#xff0c;可能会让TLS/SSL握手过程的不定性更多。本文来总结下各种握手失败的场景。 一次TLS/SSL握手的过程 本文不详细介绍TLS/SSL基础知识&#xff0c;相关介绍可以参考文章。…

千亿级的数据难题,优酷工程师怎么解决?

阿里妹导读&#xff1a;优酷一天的日志量会达到千亿级别&#xff0c;面对如此大的数据样本&#xff0c;2017年5月&#xff0c;优酷完成了从Hadoop迁移到阿里云MaxCompute&#xff0c;实现计算消耗和储存的消耗呈下降趋势&#xff0c;得到了非常大的收益。今天&#xff0c;阿里数…

热搜!华为:这类程序员领10亿,程序员:真香!你怎么看?

人工智能真的玩大了吗&#xff1f;人工智能行业的人才真的“爆发了&#xff1f;”华为&#xff1a;10亿培养AI人才程序员&#xff1a;真香&#xff01;你怎么看&#xff1f;最近&#xff0c;在AI圈里&#xff0c;发生了这样一件大事,华为宣布&#xff1a;计划投入10亿元人民币用…

html-表格标签

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>表格学习</title> </head> <body> <!-- 表格table 行 tr rows 列 td --> <table border"1px"><tr><…

玩转运维编排服务的权限:Assume Role+Pass Role

什么是运维编排服务&#xff1f; 阿里云运维编排服务&#xff08;Operation Orchestration Service&#xff0c;简称OOS&#xff09;是云上的自动化运维平台&#xff0c;提供运维任务的管理和执行。典型使用场景包括&#xff1a;事件驱动运维&#xff0c;批量操作运维&#xf…

机器学习在高德搜索建议中的应用优化实践

导读&#xff1a;高德的愿景是&#xff1a;连接真实世界&#xff0c;让出行更美好。为了实现愿景&#xff0c;我们要处理好LBS大数据和用户之间的智能链接。信息检索是其中的关键技术&#xff0c;而搜索建议又是检索服务不可或缺的组成部分。 本文将主要介绍机器学习在高德搜索…

IntelliJ IDEA 2020.x 入门到爱不释手

文章目录一、默认快捷键二、案例演示2.1. 查看最近浏览过的文件 | ctrle2.2. 根据行号定位代码 | ctrlg2.3. 导航栏快速切换2.4. 按照文本的内容替换-整个项目 |CtrlShiftr2.5. 按照文本的内容查找-整个项目 | CtrlShiftF2.6. 快速生成|ALTENTER2.7. 生成try..catch..等方法块 …

【IPF2020】浪潮集团副总裁、渠道管理部总经理王峰:赋能智慧生态 筑基新基建

目前关键计算的传统数据中心和科学计算的超算中心已经发展多年&#xff0c;而未来作为核心生产力的智慧计算的基础设施就是智算中心&#xff0c;这也是国家提出的新基建最重要的基础设施之一。 智慧生态作为智算中心建设的核心力量&#xff0c;浪潮将继续强化智慧生态的基础策…

html-媒体元素

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>媒体元素学习</title> </head> <body><!-- 音频和视频 src 资源路径 必填 不写 controls 视频不显示 &#xff0c; 控制条 autop…

如何在云上使用confd+ACM管理敏感数据

在前面的一些文章中&#xff0c;我们介绍了如何在云上安全的存放配置数据&#xff0c;但是上面的方法都是有代码侵入性的&#xff0c;也就是说需要修改应用程序&#xff0c;本文会讲解如何使用 confdACM 在不修改代码的情况下动态修改应用所需的配置&#xff0c;并且可以重新启…

windows下RocketMQ下载、安装、部署、控制台

linux 环境 RocketMQ 4.8.0 安装、部署控制台 https://gblfy.blog.csdn.net/article/details/116269833 文章目录一、软件下载二、安装、启动、配置2.1. 安装jdk1.8及maven2.2. 解压2.3. 配置环境变量2.4. 启动三、安装可视化插件3.1. github下载3.2. 解压3.3. 修改配置文件3.4…

阿里云InfluxDB® Raft HybridStorage实现方案

背景 阿里云InfluxDB是阿里云基于开源版InfluxDB打造的一款时序数据库产品&#xff0c;提供更稳定的持续运行状态、更丰富强大的时序数据计算能力。在现有的单节点版本之外&#xff0c;阿里云InfluxDB团队还将推出多节点的高可用版本。 我们知道现有的开源版InfluxDB只提供单…

灰度测试试验流量“洗牌”

什么是灰度测试 A/B测试系统的一个常用场景是App/小程序/后端服务精细化运营过程中的上线迭代管理&#xff0c;通常被称为灰度测试或者灰度上线。 详细来说&#xff0c;如果软件产品要在不久的将来推出一个全新的功能&#xff0c;或者做一次比较重大的改版的话&#xff0c;要…

html-页面结构分析

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>页面结构分析</title> </head> <body><header><h2>网页头部</h2></header><sectiokn><h2>网页…

阿里资深技术专家的10年感悟

阿里妹导读&#xff1a;阿里有许多土话&#xff0c;比如“方法总比困难多”、“不淘汰自己就会被别人淘汰”、“你感觉不舒服的时候&#xff0c;就是成长的时候”。每一句都在激励我们向前。生活总不缺困难和磨练&#xff0c;痛苦的时候&#xff0c;只有转变思维&#xff0c;才…

AnalyticDB for MySQL 3.0基础版重磅发布

随着大数据技术的迅速发展以及对数据价值的认识逐渐加深&#xff0c;大数据已经融合到各行各业。据可靠权威数据显示&#xff0c;超过39.6%的企业正在应用数据并从中获益&#xff0c;超过89.6%的企业已经成立或计划成立相关的大数据分析部&#xff0c;超过六成的企业在扩大数据…

主键索引 or 辅助索引?一文告诉你 Mysql limit 优化时的索引选择!

作者 | 吴海存责编 | 徐威龙封图| CSDN下载于视觉中国导读&#xff1a;本文主要针对limit分页时&#xff0c;是优先基于主键索引还是辅助索引等层面展开分析&#xff0c;对limit及offset的用法以及是否该用索引不会过多赘述。我们知道&#xff0c;在Mysql中可以通过limit实现快…