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

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 自动化运维三剑客: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   #测试所有主机的连通性
复制代码


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

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4天前
|
机器学习/深度学习 人工智能 运维
运维的未来之路:自动化与智能化的融合
【8月更文挑战第15天】在数字化时代的浪潮下,运维领域正经历一场深刻的变革。从手工操作到自动化流程,再到如今智能技术的融入,运维工作正在逐步摆脱繁重而重复的任务,向着更加高效、智能的方向发展。本文将探讨自动化与智能化技术如何重塑运维工作的面貌,以及这一趋势对运维人员技能要求的影响。
15 0
|
1天前
|
机器学习/深度学习 人工智能 运维
智能运维:未来趋势下的自动化与人工智能融合
【8月更文挑战第18天】 在数字化浪潮中,智能运维(AIOps)作为一股不可逆转的力量,正逐步改写传统运维的脚本。本文将探讨AIOps的核心要素、实施路径和面临的挑战,同时分享个人从新手到专家的心路历程,旨在启发读者思考如何在这一领域内持续成长并作出贡献。
12 6
|
3天前
|
运维 监控 Unix
运维必看,Linux 远程数据同步工具详解。
运维必看,Linux 远程数据同步工具详解。
|
3天前
|
机器学习/深度学习 边缘计算 人工智能
运维的未来之路:自动化与智能化
【8月更文挑战第16天】在数字化浪潮的推动下,运维领域正经历着前所未有的变革。本文将探讨自动化与智能化如何重塑运维工作,提升效率,降低成本,并预测未来运维的发展趋势。我们将深入分析当前运维面临的挑战,探讨自动化工具的应用,以及人工智能技术如何助力运维智能化,最后展望运维领域的未来可能性。
|
3天前
|
运维 持续交付 网络安全
自动化运维:Ansible与Terraform的比较
【8月更文挑战第16天】Ansible和Terraform都是自动化运维领域的重要工具,它们各自以其独特的功能和优势在市场中占据了一席之地。在选择使用哪个工具时,用户应根据自己的实际需求和应用场景进行综合考虑。如果主要关注系统配置管理和应用程序部署,那么Ansible可能是一个更好的选择;如果主要关注基础设施的自动化部署和管理,那么Terraform可能更适合您的需求。
|
5天前
|
运维 安全 测试技术
运维之魂:自动化与持续集成的交响曲
在数字时代的交响乐中,自动化和持续集成(CI/CD)是不可或缺的乐章。本文将带您走进运维的世界,探索如何通过自动化和持续集成提升效率、减少错误并确保软件质量。我们将从基础概念讲起,逐步深入到实践案例,最后探讨如何克服实施过程中的挑战,为读者呈现一场技术与艺术完美融合的视听盛宴。
|
4天前
|
机器学习/深度学习 人工智能 运维
自动化运维的新篇章:从脚本到智能化管理
在数字化浪潮中,运维领域迎来了前所未有的挑战与机遇。本文将通过一个运维专家的视角,讲述他如何从一个刚毕业的迷茫青年成长为行业内的佼佼者。文章不仅分享技术成长之路,更深入探讨自动化运维的演变历程,以及它如何重塑IT行业的未来。
|
5天前
|
机器学习/深度学习 人工智能 运维
运维的未来:从自动化到智能化
【8月更文挑战第14天】本文将探讨运维(Operations)的发展历程,从早期的手动操作,到自动化,再到如今的智能化。我们将深入了解智能化运维的优势,以及它如何改变运维人员的工作方式。同时,我们也将讨论智能化运维面临的挑战,以及未来的发展趋势。
|
6天前
|
运维 监控 Devops
构建高效自动化运维体系:DevOps与容器化实践
【7月更文挑战第44天】在现代IT基础设施管理中,自动化运维已成为提升效率、降低成本、确保系统稳定性的关键。本文将探讨如何通过结合DevOps理念和容器化技术来构建一个高效的自动化运维体系。我们将分析这一体系对提高软件交付速度、优化资源利用率以及增强系统可靠性的积极影响,并提供一系列实施策略和最佳实践,帮助企业实现运维自动化转型。
|
10天前
|
运维 Ubuntu 网络安全
Ansible:自动化运维的魔法棒,让复杂工作变得如此简单!
【8月更文挑战第9天】在现代IT运维中,自动化工具不可或缺。Ansible是一款流行的开源工具,以其简洁高效著称。它基于Python,使用YAML编写剧本,通过SSH与远程主机交互,无需安装代理。核心组件包括引擎、剧本、模块等。安装简易,如在Ubuntu上可通过添加PPA后使用`apt-get`命令。通过编写Playbook,如安装并启动Apache2服务的例子所示,可轻松实现自动化任务。Ansible的强大功能和灵活性使其成为提高运维效率的理想选择。
45 6