使用云助手自动化运维 ECS 实例

简介: 介绍与演示云助手的用法,包含:- 云助手的简介- 在 ECS 实例上手动执行命令的实例- 在 ECS 实例上安装 Jenkins 的实验

一、ECS云助手简介

云助手是阿里云ECS官方提供的自动化运维通道,通过云助手可免密码、免公网IP、免跳板机,实现在ECS实例上执行命令(Shell、Powershell和Bat)和发送文件等操作。典型的使用场景包括:安装卸载软件、启动或停止服务、部署应用、分发配置及执行一般的命令(或脚本)等。


在阿里云官方的 Windows 与 Linux 系统镜像中,都默认带有云助手,无需自行安装 (仅 Redhat 需要手动安装)。

您也可在私有云主机或其他云服务器上安装云助手 Agent,将此主机注册在您的阿里云帐户下,统一使用云助手进行主机运维。


云助手的主要功能项:

  • 向指定的实例发送命令,对应 API RunCommand
  • 向指定的实例发送文件,对应 API SendFile


您可通过阿里云 SDK、CLI 及控制台使用该功能,以下分别以阿里云 CLI 及控制台为例,介绍云助手的用法。


通过阿里云 CLI 使用云助手

关于 aliyun cli 命令行工具,请参见https://help.aliyun.com/document_detail/110244.html

发送命令 (RunCommand)

RunCommand 的常用参数如下:

aliyun ecs RunCommand \
--RegionId="cn-shenzhen" \
--InstanceId.1="i-wz9g75dkmfp0ofsplnlr" \
--InstanceId.2="i-wz9g75dkmfp0ofsplnls" \
--Type="RunShellScript" \
--CommandContent="yum install -y git" \
--Timeout=60
  • 参数 "RegionId" - 目标 ECS 实例所在的地域
  • 参数 "InstanceId - 可以指定该地域下的一个或多个 ECS 实例
  • 参数 "Type" - 脚本类型,目前支持三种:分别是
  • Linux 上支持执行 Shell 脚本,值使用 "RunShellScript"
  • Windows 上支持 Batch 与 PowerShell,值使用 "RunBatScript" 与 "RunPowerShellScript"
  • 参数 "CommandContent" - 指的是脚本内容,当前示例为通过 yum 安装 git 客户端
  • 参数 "Timeout" - 时脚本执行超时时间,默认60秒;
  • 其他:您也可以指定让脚本的定时运行、周期运行、或开机自动执行,完整参数详见 RunCommand API 文档: https://next.api.aliyun.com/document/Ecs/2014-05-26/RunCommand

执行 RunCommand 之后,将会创建一个异步任务,并立即返回 InvokeId 值;您可以通过 DescribeInvocations 来轮询该任务的进度及脚本输出结果,直到任务终结。

通过阿里云控制台使用云助手

以下有两个小实验,演示了云助手的使用。

  1. 首先,准备一或多台实验用的 Linux ECS 实例
  • 为了能够完成 Jenkins 的全部安全步骤,最好该实例带有公网 IP;
  • 推荐使用 CentOS、Debian、Ubuntu、Foedora 或 Aliyun Liunx。
  1. 导航到 ECS 控制台,打开“运维与监控”下的“云助手”

image.png


实验一:在实例上执行自定义脚本命令

  1. 点击按钮“创建/执行命令”,打开对话框"创建命令”

  • (可选) 在命令名称中输入“detect_linux_release_type.sh”
  • 在命令内容中,输入以下脚本:


#!/bin/bash# detect linux release typefunction get_linux_type {
type=""if which lsb_release > /dev/null 2>&1; thenecho"> lsb_release -a"        lsb_release -a;
type="$(lsb_release -a | grep "Distributor ID" | cut -d':' -f2 | xargs echo -n)"elif [ -f /etc/os-release ]; thenecho"> cat /etc/os-release"cat /etc/os-release;
type="$(cat /etc/os-release | grep -e "^ID=" | cut -d'=' -f2 | xargs echo -n)"elif [ -f /etc/system-release ]; thenecho"> cat /etc/system-release"cat /etc/system-release;
type="$(cat /etc/system-release | cut -d' ' -f1 | xargs echo -n)"elsetype="Unknown"fiecho-e"\n\e[0;45m$type\e[0m\n"}
get_linux_type


  1. 勾择一台或多台实例,然后点击“执行”按钮

  1. 查看命令执行进度及结果


实验二:在实例上安装 Jenkins 服务


  1. 切换到 ECS 云助手下的“公共命令” 标签页

“公共命令”列表,是由阿里云所提供的命令,你可直接使用,或复制修改后使用。

  1. 找到名为 "ACS-ECS-Application-Setup-Jenkins.sh" 的公共命令

  1. 点击该命令的 “执行”,并选择先前准备的 ECS 实例
  2. 查看执行进度,等待约 2~5分钟后,命令可执行完成

  1. 命令结束后,打开末尾所示的 Jenkins 服务地址

  1. 在实例上执行此 cat 命令,获得 Jenkins Admin 密码,并继续 Unlock Jenkins

cat /var/lib/jenkins/secrets/initialAdminPassword

  1. 实验步骤完成

实验三:将私有云主机托管到阿里云

您可以将私有云或其它云上的服务器,注册为阿里云托管实例。注册完成后,此在该主机上使用阿里云提供的多种在线服务,如云助手、运维编排、云效等多种服务,并且操作方式与阿里云 ECS 实例一致。


阿里云托管实例,支持 Windows 或 Linux 主机,进行该实验前需要有一台私有主机。


  1. 切换到云助手的“托管实例”页面

  1. 点击“创建激活码”,打开“创建激活码”
  2. 填写表单,然后点击“生成激活码”按钮

  1. 根据您的主机的系统类型,选择并复制生成的脚本,并在私有主机上执行
  2. 脚本执行完成后,返回到阿里云控制台,查看云助手的"托管实例" 列表

此处将显示您刚才注册的私有主机

  1. 试一试对该托管实例上“执行命令”!


二、远程操作方式对比


相比于其他常用的实例登入方式 (如 Linux SSH 或 Windows 的 RemteDesktop),云助手的以下多个方面的个方面优势:

  1. 支持自动化:

使用云助手时,无需实例密码。可使用阿里云 Open API,或阿里云 CLI 编写程序或脚本,实现自动化的 ECS 实例运维操作。

  1. 免公网暴露:

云助手的功能实现,是通过控制系统来完成。所以不需要让实例暴露在公网上,即有利于实例的安全,也节省了公网流量费用。

  1. 安全易控制:

通过 RAM 角色与权限的管理,所以配置子帐号能否在指定实例上执行执行特定的操作,可以防止不被授权的操作。

  1. 有操作审计:

同样,云上的 API 操作都有 ActionTrail 记录,以及命令执行记录,可以被事后审计。

四、云助手的适用场景

借助云助手,能够实现自动化完成 ECS 实例的多种运维操作,例如:

  • 系统及应用的安装与配置
  • 应用程序的部署与更新
  • 系统的监控与数据采集
  • 系统的问题诊断自动修复


阿里云也将继续提供更多的服务,为实例运维来带来更多的便利。

五、结束& 感谢

感谢大家的收看,欢迎持续关注阿里云-玩转 ECS 系列视频/文章。


相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
8月前
|
弹性计算 Devops Shell
用阿里云 DevOps Flow 实现 ECS 部署自动化:从准备到落地的完整指南
阿里云 DevOps Flow 是一款助力开发者实现自动化部署的高效工具,支持代码流水线构建、测试与部署至ECS实例,显著提升交付效率与稳定性。本文详解如何通过 Flow 自动部署 Bash 脚本至 ECS,涵盖环境准备、流水线搭建、源码接入、部署流程设计及结果验证,助你快速上手云上自动化运维。
721 0
|
7月前
|
数据采集 运维 监控
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
本文系统解析爬虫与自动化核心技术,涵盖HTTP请求、数据解析、分布式架构及反爬策略,结合Scrapy、Selenium等框架实战,助力构建高效、稳定、合规的数据采集系统。
1207 62
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
|
9月前
|
运维 Prometheus 监控
3 年部署经验总结:用自动化工具轻松管理 300+ 服务器开源软件
三年前接手公司IT部门时,我满怀信心,却发现部署效率低下。尽管使用了GitLab、Jenkins、Zabbix等100+开源工具,部署仍耗时费力。文档厚重如百科,却难解实际困境。一次凌晨三点的加班让我下定决心改变现状。偶然看到一篇国外博客,介绍了自动化部署的高效方式,我深受启发。
365 0
|
7月前
|
弹性计算 人工智能 前端开发
在阿里云ECS上部署n8n自动化工作流:U2实例实战
本文介绍如何在阿里云ECS的u2i/u2a实例上部署开源工作流自动化平台n8n,利用Docker快速搭建并配置定时任务,实现如每日抓取MuleRun新AI Agent并推送通知等自动化流程。内容涵盖环境准备、安全组设置、实战案例与优化建议,助力高效构建低维护成本的自动化系统。
1898 5
|
8月前
|
运维 Linux 网络安全
自动化真能省钱?聊聊运维自动化如何帮企业优化IT成本
自动化真能省钱?聊聊运维自动化如何帮企业优化IT成本
264 4
|
弹性计算 人工智能 运维
摆脱繁琐命令-让运维更加流畅-阿里云ECS操作系统控制台运维篇
阿里云操作系统控制台提供了便捷的服务器监控与管理功能,简化了运维工作。通过将多台服务器纳入统一监控平台,用户可以快速查看CPU、内存、磁盘和网络等关键资源的使用情况,避免了逐一远程连接查询的繁琐操作。此外,该工具支持自动化数据汇总,极大地方便了日报、周报和月报的编写。测试过程中,系统展示了良好的稳定性和响应速度,尤其在网络抖动和大文件健康状态测试中表现出色。整体体验流畅,显著提升了运维效率。 操作系统控制台地址:[点击访问](https://alinux.console.aliyun.com/)
454 26
摆脱繁琐命令-让运维更加流畅-阿里云ECS操作系统控制台运维篇
|
10月前
|
运维 监控 安全
从实践到自动化:现代运维管理的转型与挑战
本文探讨了现代运维管理从传统人工模式向自动化转型的必要性与路径,分析了传统运维的痛点,如效率低、响应慢、依赖经验等问题,并介绍了自动化运维在提升效率、降低成本、增强系统稳定性与安全性方面的优势。结合技术工具与实践案例,文章展示了企业如何通过自动化实现运维升级,推动数字化转型,提升业务竞争力。
|
机器学习/深度学习 人工智能 运维
机器学习+自动化运维:让服务器自己修Bug,运维变轻松!
机器学习+自动化运维:让服务器自己修Bug,运维变轻松!
570 14