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

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


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

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
24天前
|
运维 Ubuntu 应用服务中间件
自动化运维之路:使用Ansible进行服务器管理
在现代IT基础设施中,自动化运维已成为提高效率和可靠性的关键。本文将引导您通过使用Ansible这一强大的自动化工具来简化日常的服务器管理任务。我们将一起探索如何配置Ansible、编写Playbook以及执行自动化任务,旨在为读者提供一条清晰的路径,从而步入自动化运维的世界。
|
22天前
|
运维 网络安全 Python
自动化运维:使用Ansible实现批量服务器配置
在快速迭代的IT环境中,高效、可靠的服务器管理变得至关重要。本文将介绍如何使用Ansible这一强大的自动化工具,来简化和加速批量服务器配置过程。我们将从基础开始,逐步深入到更复杂的应用场景,确保即使是新手也能跟上节奏。文章将不包含代码示例,而是通过清晰的步骤和逻辑结构,引导读者理解自动化运维的核心概念及其在实际操作中的应用。
|
24天前
|
运维 Kubernetes Devops
自动化运维:从脚本到工具的演进之旅
在数字化浪潮中,自动化运维成为提升效率、保障系统稳定的关键。本文将探索自动化运维的发展脉络,从基础的Shell脚本编写到复杂的自动化工具应用,揭示这一技术变革如何重塑IT运维领域。我们将通过实际案例,展示自动化运维在简化工作流程、提高响应速度和降低人为错误中的重要作用。无论你是初学者还是资深专家,这篇文章都将为你提供宝贵的洞见和实用的技巧。
|
23天前
|
运维 Ubuntu 网络协议
自动化运维:使用Ansible进行服务器配置管理
在现代IT架构中,自动化运维已成为提升效率、减少人为错误的关键。本文将介绍如何使用Ansible这一强大的自动化工具来简化和标准化服务器的配置管理过程。通过具体的代码示例和操作步骤,我们将展示如何快速部署应用、管理配置以及自动化日常任务,从而确保环境的一致性和可靠性。
|
1月前
|
运维 监控 安全
自动化运维的利剑:Ansible在现代IT架构中的应用
在数字化浪潮中,企业对IT系统的敏捷性和可靠性要求日益提高。Ansible,一种简单但强大的自动化运维工具,正成为现代IT架构中不可或缺的一部分。它通过声明式编程语言YAM,简化了系统配置、应用部署和任务自动化的过程,显著提升了运维效率和准确性。本文将深入探讨Ansible的核心特性、应用场景以及如何有效整合进现有IT环境,为读者揭示其在自动化运维中的实用价值和未来发展潜力。
|
1月前
|
运维 安全 Ubuntu
自动化运维:使用Ansible进行服务器配置管理
在现代IT基础设施中,自动化运维是确保高效、稳定和安全服务的关键。本文将深入介绍如何使用Ansible这一开源工具来简化服务器配置管理工作,从基础安装到高级应用,我们将一步步展示如何通过Ansible Playbooks实现自动化部署和维护,旨在帮助读者构建更加灵活和可扩展的运维体系。
43 7
|
28天前
|
机器学习/深度学习 运维 监控
智能化运维:从自动化到AIOps的演进之路####
本文深入探讨了IT运维领域如何由传统手工操作逐步迈向高度自动化,并进一步向智能化运维(AIOps)转型的过程。不同于常规摘要仅概述内容要点,本摘要将直接引入一个核心观点:随着云计算、大数据及人工智能技术的飞速发展,智能化运维已成为提升企业IT系统稳定性与效率的关键驱动力。文章详细阐述了自动化工具的应用现状、面临的挑战以及AIOps如何通过预测性分析和智能决策支持,实现运维工作的质变,引领读者思考未来运维模式的发展趋势。 ####
|
28天前
|
机器学习/深度学习 数据采集 人工智能
智能化运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的崛起背景,深入分析了其核心概念、关键技术、应用场景及面临的挑战,并对比了传统IT运维模式,揭示了AIOps如何引领运维管理向更高效、智能的方向迈进。通过实际案例分析,展示了AIOps在不同行业中的应用成效,为读者提供了对未来智能运维趋势的洞察与思考。 ####
73 1
|
1月前
|
运维 Ubuntu Linux
自动化运维:使用Ansible简化日常任务
在快节奏的IT世界中,时间就是一切。本文将揭示如何通过Ansible这一强大的自动化工具来节省宝贵的时间,从而提高效率和减少人为错误。我们将深入探讨Ansible的核心概念、安装过程以及如何编写简单的playbook来自动执行常见运维任务。无论你是新手还是有经验的系统管理员,这篇文章都将为你提供实用的知识和技能,让你能够更好地控制你的服务器环境。
|
1月前
|
机器学习/深度学习 人工智能 运维
自动化运维之路:从脚本到工具的演进
在IT运维领域,效率和准确性是衡量工作成效的关键指标。随着技术的发展,自动化运维逐渐成为提升这两个指标的重要手段。本文将带领读者了解自动化运维的演变历程,从最初的简单脚本编写到现今复杂的自动化工具应用,展示如何通过技术提升运维效率。文章不仅介绍理论和实践案例,还提供了代码示例,帮助读者理解自动化运维的实际应用场景。