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

本文涉及的产品
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   #测试所有主机的连通性
复制代码


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

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
一键自动化博客发布工具,用过的人都说好(51cto篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到51cto上。
一键自动化博客发布工具,用过的人都说好(51cto篇)
|
6天前
|
消息中间件 运维 Kubernetes
构建高效自动化运维体系:Ansible与Kubernetes的融合实践
【5月更文挑战第9天】随着云计算和微服务架构的普及,自动化运维成为确保系统可靠性和效率的关键。本文将深入探讨如何通过Ansible和Kubernetes的集成,构建一个强大的自动化运维体系。我们将分析Ansible的配置管理功能以及Kubernetes容器编排的优势,并展示如何将二者结合,以实现持续部署、快速扩展和高效管理现代云原生应用。文章还将涵盖实际案例,帮助读者理解在真实环境下如何利用这些工具优化运维流程。
|
1天前
|
存储 运维 关系型数据库
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
一键自动化博客发布工具,用过的人都说好(掘金篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到掘金上。
一键自动化博客发布工具,用过的人都说好(掘金篇)
|
5天前
|
缓存 IDE Java
Java一分钟之-Gradle:构建自动化工具
【5月更文挑战第16天】本文介绍了Gradle,一个基于Groovy的灵活构建工具,强调其优于Maven的灵活性和性能。文中通过示例展示了基本的`build.gradle`文件结构,并讨论了常见问题:版本冲突、缓存问题和构建速度慢,提供了相应的解决策略。此外,还提醒开发者注意插件ID、语法错误和源代码目录等易错点。掌握这些知识能提升开发效率,使构建过程更顺畅。
28 2
一键自动化博客发布工具,用过的人都说好(csdn篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到csdn上。
一键自动化博客发布工具,用过的人都说好(csdn篇)
|
6天前
|
运维 安全 API
构建高效自动化运维体系:Ansible与Docker的协同实践
【5月更文挑战第13天】在现代IT基础设施管理中,自动化运维已成为提升效率、确保一致性和降低人为错误的关键。本文通过深入探讨Ansible和Docker的集成实践,揭示了如何构建一个灵活、可扩展且高效的自动化运维体系。我们将从理论到实践,展示如何利用这两种技术实现自动化部署、管理和扩展应用服务,以及它们如何帮助运维团队应对快速变化的业务需求和复杂的IT环境。
31 1
一键自动化博客发布工具,用过的人都说好(infoq篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到infoq上。
一键自动化博客发布工具,用过的人都说好(infoq篇)
一键自动化博客发布工具,用过的人都说好(cnblogs篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到cnblogs上。
|
6天前
|
开发者
一键自动化博客发布工具,用过的人都说好(阿里云篇)
使用一键自动化博客发布工具blog-auto-publishing-tools把博客发布到阿里云上。
一键自动化博客发布工具,用过的人都说好(阿里云篇)

热门文章

最新文章