自动化运维工具—Ansible概述及命令行模块(中)

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: 自动化运维三剑客:saltstackpubbetansible


3.4 user模块

管理用户的模块。

ansible-doc -s user    #查看user模块包含的操作动作
复制代码

常用参数:


参数 说明
name 用户名,必选参数。
state=present 或 absent 创建账号或者删除账号,present表示 创建,absent 表示删除。
system=yes 或 no 是否为系统账号。
uid 用户uid。
group 用户基本组。
groups 用户附加组。
shell 默认使用的登录shell
move_home=yes 或 no 如果设置的家目录已经存在,是否将已经存在的家目录进行移动。
password 用户的密码,建议使用加密后的字符串。
comment 用户的注释信息。
remove=yes 或 no 表示当state=absent时,是否删除用户的家目录。即删除用户时,是否同时删除家目录。yes表示删除用户的家目录。


示例1:

ansible dbservers -m user -a 'name="test01"'   #创建用户test01
 ansible dbservers -a 'tail -1 /etc/passwd'     #查看目标主机的用户账号文件
 ansible dbservers -m user -a 'name="test01"'
 #再次执行相同命令,状态为success,而不是changed,因为user模块不具有幂等性。
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


示例2:

#删除用户test01,但保留家目录。删除家目录要加remove=yes
 ansible dbservers -m user -a 'name="test01" state=absent'
 ansible dbservers -a 'id test01' 
 ansible dbservers -a 'ls /home' 
复制代码


网络异常,图片无法展示
|


示例3:

#创建名称为qiangge的用户,uid为9526,添加附加组wheel
 ansible dbservers -m user -a 'name="qiangge" uid=9526 groups=wheel'
 ansible dbservers -a 'grep qiangge /etc/passwd'
 #之后为qiangge用户设置密码,并且让其不可登录系统。
 ansible dbservers -m user -a 'name="qiangge" password="123456" shell="/sbin/nologin"'
 ansible dbservers -a 'grep qiangge /etc/passwd'
 ansible dbservers -a 'grep qiangge /etc/shadow'
 #删除用户qiangge,且删除家目录
 ansible dbservers -m user -a 'name="qiangge" state=absent remove=yes'
 ansible dbservers -a 'id qiange' 
 ansible dbservers -a 'ls /home' 
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


网络异常,图片无法展示
|


3.5 group模块

管理用户组的模块。

注意:字符串类型的值建议加双引号,防止有空格。数字和布尔值不要加双引号。

ansible-doc -s group    #查看group模块包含的操作动作
 #创建mysql组,设置为系统组。
 ansible dbservers -m group -a 'name="mysql" gid=306 system=yes'
 ansible dbservers -a 'tail -3 /etc/group'
 #创建用户test02,设置为系统用户,基本组设置为mysql组。
 ansible dbservers -m user -a 'name="test02" uid=306 system=yes group="mysql"'
 ansible dbservers -a 'id test02'
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


3.6 copy模块

用于将本地文件复制到远程主机。

ansible-doc -s copy     #查看copy模块包含的操作动作
复制代码

常用参数:

参数 说明
src 指出源文件的路径(位于控制节点,即管理端),可以使用相对路径或绝对路径,支持直接指定目录,如果源是目录则目标也要是目录。
dest 指出复制文件的目标及位置,使用绝对路径,如果源是目录则目标也要是目录,如果目标文件已经存在会覆盖原有的内容。
mode 指出复制时,目标文件的权限。
owner 指出复制时,目标文件的属主。
group 指出复制时,目标文件的属组。
content 指出复制到目标主机上的内容,不能与src一起使用。


示例1:

#将本地的/etc/hosts文件,复制到远程主机的/data/目录下,并重命名为hosts.bak,文件属主设置为root、属组设置为mysql,权限设置为640。
 ansible dbservers -m copy -a 'src=/etc/hosts dest=/data/hosts.bak owner=root group=mysql mode=640'
 ansible dbservers -a 'ls -l /data'     #查看文件权限
复制代码


网络异常,图片无法展示
|


示例2:

#将helloworld写入远程主机的/data/hello.txt文件中
 ansible dbservers -m copy -a 'content="helloworld" dest=/data/hello.txt'
 ansible dbservers -a 'cat /data/hello.txt'
复制代码


网络异常,图片无法展示
|


3.7 file模块

为远程主机创建/删除文件或目录,设置文件属性。

主要参数如下:

参数 说明
path 指定远程服务器的路径,也可以写成"dest","name"
state 状态,可以将值设定为directory表示创建目录,设定为touch表示创建文件,设定为link表示创建软链接,设定为hard表示创建硬连接,设定为absent表示删除目录文件或链接
mode 文件复制到远程并设定权限,默认file=644,directory=755
owner 文件复制到远程并设定属主,默认为root
group 文件复制到远程并设定属组,默认为root
recurese 递归修改
src 指的是目标主机上的源文件。与copy模块不同。


示例1:修改文件的属主、属组、权限等

ansible-doc -s file    #查看file模块包含的动作
 #修改文件的属主、属组、权限等。
 ansible dbservers -m file -a 'path=/data/hosts.bak owner=test02 group=root mode=644'
 ansible dbservers -a 'ls -l /data'
复制代码


网络异常,图片无法展示
|


示例2:创建软链接文件

#设置/opt/passwd.link为/etc/passwd的链接文件。state=link表示创建软链接。
 ansible dbservers -m file -a 'path=/opt/passwd.link src=/etc/passwd state=link'
 ansible dbservers -a 'ls -l /opt'
 #注意:src指的是目标主机上的源文件,与copy模块不同。
复制代码


网络异常,图片无法展示
|


示例3:创建和删除文件、目录

#创建一个文件
 ansible dbservers -m file -a 'path=/data/aa.txt state=touch'
 ansible dbservers -a 'ls /data'
 #删除文件/data/aa.txt
 ansible dbservers -m file -a 'path=/data/aa.txt state=absent'
 ansible dbservers -a 'ls /data'
 #创建一个目录
 ansible dbservers -m file -a 'path=/data/hr state=directory'
 ansible dbservers -a 'ls -l /data'
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


网络异常,图片无法展示
|


3.8 hostname模块

用于管理远程主机上的主机名。

ansible dbservers -m hostname -a 'name=myhost7-4'  #修改dbservers组的主机名
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


3.9 ping模块

测试远程主机的连通性。

ansible all -m ping   #测试所有主机的连通性
复制代码


网络异常,图片无法展示
|

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
9月前
|
运维 Prometheus 监控
3 年部署经验总结:用自动化工具轻松管理 300+ 服务器开源软件
三年前接手公司IT部门时,我满怀信心,却发现部署效率低下。尽管使用了GitLab、Jenkins、Zabbix等100+开源工具,部署仍耗时费力。文档厚重如百科,却难解实际困境。一次凌晨三点的加班让我下定决心改变现状。偶然看到一篇国外博客,介绍了自动化部署的高效方式,我深受启发。
365 0
|
8月前
|
机器学习/深度学习 人工智能 测试技术
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
EdgeMark是一个面向嵌入式AI的自动化部署与基准测试系统,支持TensorFlow Lite Micro、Edge Impulse等主流工具,通过模块化架构实现模型生成、优化、转换与部署全流程自动化,并提供跨平台性能对比,助力开发者在资源受限设备上高效选择与部署AI模型。
727 9
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
|
7月前
|
人工智能 搜索推荐 UED
一个牛逼的国产AI自动化工具,开源了 !
AiPy是国产开源AI工具,结合大语言模型与Python,支持本地部署。用户只需用自然语言描述需求,即可自动生成并执行代码,轻松实现数据分析、清洗、可视化等任务,零基础也能玩转编程,被誉为程序员的智能助手。
|
9月前
|
人工智能 数据可视化 数据挖掘
团队日报不用愁!自动化生成工具亲测:任务进度实时同步
本文深入分析了传统手动日报在数据孤岛、格式混乱和时效性差三大痛点,并探讨了自动化日报带来的效率提升、决策优化等四大核心价值。通过对板栗看板、SmartBrief、n8n 等六款主流工具的功能、适用场景及实战效果进行测评,为企业提供科学的选型建议与实施路径。
团队日报不用愁!自动化生成工具亲测:任务进度实时同步
|
8月前
|
Java 测试技术 API
自动化测试工具集成及实践
自动化测试用例的覆盖度及关键点最佳实践、自动化测试工具、集成方法、自动化脚本编写等(兼容多语言(Java、Python、Go、C++、C#等)、多框架(Spring、React、Vue等))
701 6
|
9月前
|
人工智能 供应链 数据可视化
工作流梳理工具实战教程:手把手教你绘制第一张自动化流程图
本文剖析了团队因流程混乱导致重复劳动和效率低下的问题,提出通过工作流梳理提升协作效率的解决方案。总结了流程梳理的六大核心需求,并深度测评了6款主流工具,国内有板栗看板那,国外有kiss flow结合团队规模与需求提供选型建议,助力企业高效落地流程优化。
|
7月前
|
人工智能 缓存 自然语言处理
86_自动化提示:AutoPrompt工具
在当今人工智能领域,提示工程(Prompt Engineering)已成为释放大语言模型(LLM)潜能的关键技术。随着LLM规模和能力的不断增长,如何设计高效、精确的提示词成为研究和应用的焦点。然而,传统的手工提示工程面临着巨大挑战
562 0
|
10月前
|
数据采集 人工智能 API
推荐一款Python开源的AI自动化工具:Browser Use
Browser Use 是一款基于 Python 的开源 AI 自动化工具,融合大型语言模型与浏览器自动化技术,支持网页导航、数据抓取、智能决策等操作,适用于测试、爬虫、信息提取等多种场景。
1409 4
推荐一款Python开源的AI自动化工具:Browser Use
|
8月前
|
安全 搜索推荐 机器人
风险规则引擎-RPA 作为自动化依赖业务决策流程的强大工具
机器人流程自动化(RPA)是一种通过软件“机器人”自动执行重复性任务的技术,能大幅提升工作效率。它适用于财务、电商等领域的标准化流程,如账单处理和退货管理。然而,RPA在复杂决策场景中存在局限,需结合决策模型(DMN)和业务规则管理系统(BRMS)实现流程与决策的协同自动化,从而增强灵活性与业务价值。
|
10月前
|
运维 监控 持续交付
还在为部署开源工具烦恼?自动化部署工具 Websoft9一键部署 300+ 开源应用
在数字化时代,开源工具因免费、灵活、可定制等特性广受欢迎,但其部署过程却常因环境配置复杂、依赖繁琐、耗时长等问题令人头疼。本文介绍了传统部署的三大难点,并提出两种解决方案:传统手动部署与集成化控制台部署。
还在为部署开源工具烦恼?自动化部署工具 Websoft9一键部署 300+ 开源应用