Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >手拉手入门Ansible常用模块

手拉手入门Ansible常用模块

原创
作者头像
QGS
发布于 2025-01-23 05:41:24
发布于 2025-01-23 05:41:24
1301
举报
文章被收录于专栏:QGS探索QGS探索

自动化运维Devops-Ansible

Ansible是新出现的自动化运维工具,基于Python 开发,集合了众多运维工具(puppet 、cfengine、chef、func、fabric)的优点,实现了批量系统配置 、批量程序部署、批量运行命令 等功能。Ansible架构相对比较简单,仅需通过SSH 连接客户机 执行任务即可。

测试环境

操作系统版本

IP地址

主机名

Centos7.6

192.168.68.133

manage

Centos7.6

192.168.68.134

node01

Centos7.6

192.168.68.135

node02

Ansible常用模块

Ansible模块共计3387个

Ansible执行命令的结果颜色含义

绿色:命令执行成功,但是状态没有变化(软件已经安装过)

黄色:命令执行成功,状态发生改变(首次安装)

紫色:warning警告信息,ansible提升有更合适的用法

红色:命令错误,执行失败

蓝色:详细的执行过程

Command模块

Command是ansible默认的末流,也就是默认指定 -m -command

Command模块执行命令,只支持简单命令执行,不得使用变量(%HOME),不得出现特殊符号<、>、|、;、&

代码语言:txt
AI代码解释
复制
ansible node01 -m command -a 'free -m' => ansible node01 -a 'free -m'

代码语言:txt
AI代码解释
复制
ansible node01 -a 'touch /opt/test001.log'

获取负载信息

代码语言:txt
AI代码解释
复制
ansible node01 -a 'uptime'

备份一份日志

代码语言:txt
AI代码解释
复制
ansible node01 -a "cp /opt/test001.log /var/log chdir=/"
ansible node01 -a "ls -l /var/log chdir=/"

如果文件夹不存在,则不执行操作

代码语言:txt
AI代码解释
复制
ansible node01 -a "cp /opt/tt/test001.log /var/log chdir=/ removes=/opt/"

Shell模块

Shell模块可以在linux上执行任何复杂的命令

使用重定向符号,创建文件

代码语言:txt
AI代码解释
复制
ansible node01 -m shell -a "date > /opt/datetest01.log"
ansible node01 -m shell -a "cat /opt/datetest01.log chdir=/"

过滤mysql进程信息

代码语言:txt
AI代码解释
复制
ansible node01 -m shell -a "ps -ef|grep mysql"

代码语言:txt
AI代码解释
复制
ansible node01 -m shell -a "date '+%F %T' > /opt/datetest01.log"

一条命令执行多个命令:1、创建文件夹 2、生成sh脚本文件 3、赋予脚本可执行权限 4、执行脚本

代码语言:txt
AI代码解释
复制
ansible node01 -m shell -a "mkdir /opt/ansibletest/;echo 'ps -ef'  > /opt/ansibletest/pstest.sh;chmod +x /opt/ansibletest/pstest.sh;bash  /opt/ansibletest/pstest.sh"

忽略warning信息

代码语言:txt
AI代码解释
复制
ansible node01 -m shell -a "mkdir /opt/ansibletest/;echo 'ps -ef'  > /opt/ansibletest/pstest.sh;chmod +x /opt/ansibletest/pstest.sh;bash  /opt/ansibletest/pstest.sh; warn=false"

Copy模块

Copy模式是远程推送数据模块,只能把数据推送给节点主机,无法拉取数据到本地。

Manage->Node ;Node!=-> Manage

简单发送文件

src源文件绝对路径 ,dest目的路径

代码语言:txt
AI代码解释
复制
ansible node01 -m copy -a "src=/opt/cpu_per.sh dest=/opt/"

发送文件并修改文件权限

代码语言:txt
AI代码解释
复制
ansible node01 -m copy -a "src=/opt/linux_Inspection.sh dest=/opt/linux_Inspection.sh mode=700"

创建一个备份文件(若目标文件内存不同,另外生成加上时间戳)

代码语言:txt
AI代码解释
复制
ansible node01 -m copy -a "src=/opt/cpu_per.sh dest=/opt/ backup=yes"

将指定数据写入远程文件中

覆盖原有内容

代码语言:txt
AI代码解释
复制
ansible node01 -m copy -a "content='hello word' dest=/opt/test001.log"
ansible node01 -m shell -a "cat /opt/test001.log"

开启备份

代码语言:txt
AI代码解释
复制
ansible node01 -m copy -a "content='hello word' dest=/opt/test001.log backup=yes"

复制文件夹

拷贝/opt/下所有内容至目标虚拟机

代码语言:txt
AI代码解释
复制
ansible node01 -m copy -a "src=/opt/ dest=/opt/copyDemo"

拷贝/opt整个目录到目标虚拟机

代码语言:txt
AI代码解释
复制
ansible node01 -m copy -a "src=/opt dest=/opt/copyDemo"

File模块

File模块用于创建文档、目录数据、及文件、目录权限修改

文档帮助ansible-doc -s file

创建文件

代码语言:txt
AI代码解释
复制
ansible node01 -m file -a "path=/opt/ansibleTest.log state=touch"

修改文件属性并设定权限

代码语言:txt
AI代码解释
复制
ansible node01 -m file -a "path=/opt/linux-ansible.log state=touch owner=adm group=adm mode=700"

创建文件夹

代码语言:txt
AI代码解释
复制
ansible node01 -m file -a "path=/opt/ansibleDemo state=directory"

创建软连接文件

代码语言:txt
AI代码解释
复制
ansible node01 -m file -a "src=/opt/ansibleTest.log dest=/opt/ansibleDemo/ansibleTest.log state=link"

强制创建软连接文件

代码语言:txt
AI代码解释
复制
ansible node01 -m file -a "src=/opt/ansible1234 dest=/opt/ansibleDemo/ansibleTest123.log state=link force=yes"

Ping模块

代码语言:txt
AI代码解释
复制
ansible node01 -m ping

代码语言:txt
AI代码解释
复制
ansible all -m ping

Script模块

将本地脚本在远程节点并执行

代码语言:txt
AI代码解释
复制
ansible node01 -m script -a "/opt/cpu_per.sh"

查看命令执行详细过程

代码语言:txt
AI代码解释
复制
ansible node01 -vvvv -m script -a "/opt/cpu_per.sh"

Cron定时任务模块

分时日月周

*****

创建定时任务

每10分钟做一次时钟同步

代码语言:txt
AI代码解释
复制
ansible node01 -m cron -a "name='synchronization' minute=*/10 job='ntpdate -u ntp.aliyun.com'"

每分钟追加一句话到文本

代码语言:txt
AI代码解释
复制
ansible node01 -m cron -a "name='testhello1' job='echo "hello" >>/opt/hello.log'"

删除定时任务

Name=指定定时任务名称

代码语言:txt
AI代码解释
复制
ansible node01 -m cron -a "name='synchronization' state=absent "

根据定时任务名称修改任务

代码语言:txt
AI代码解释
复制
ansible node01 -m cron -a "name='testhello1' minute=30 hour=9 job='echo "hello" >>/opt/hello.log'"

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
1 条评论
热度
最新
可以,大佬,互粉一下
可以,大佬,互粉一下
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
ansible服务部署与使用
第1章 ssh+key实现基于密钥连接(ansible使用前提) 说明:    ansible其功能实现基于SSH远程连接服务 使用ansible需要首先实现ssh密钥连接 1.1 部署ssh ke
惨绿少年
2017/12/27
4.2K0
ansible服务部署与使用
Ansible自动化配置详解
1.1 ansible是一个配置管理系统configuration management system,
星哥玩云
2022/07/14
8000
Ansible 自动化运维笔记(总结)
Ansible 是新出现的自动化运维工具,基于Python开发,集合了众多运维工具的优点.
王 瑞
2022/12/28
2.3K0
Ansible 常用模块详细介绍
Ansible模块的学习已经是很久的事情了,今天正好周末,来图书馆整理下资料! 常用模块(module_name): ping 模块:测试连通性 [[email protected] ~]# ansible all -m ping 172.16.1.8 | SUCCESS => { "changed": false, "ping": "pong" } 172.16.1.41 | SUCCESS => { "changed": false, "ping": "pong"
老七Linux
2018/05/31
1.1K0
Ansible管理Windows集群
最近公司新项目需要安装400+windows server 2012系统的工作站,想着怎么能像linux下运用ansible批量管理,linux就很简单了有ssh服务
院长技术
2021/02/19
2.8K0
Ansible管理Windows集群
自动化运维—Ansible(上)
  ansible甚至都不用启动服务,仅仅只是一个工具,可以很轻松的实现分布式扩展
yaohong
2019/09/11
2.7K0
自动化运维—Ansible(上)
马哥金牌分享 | 十五分钟实现Ansible常用模块入门
本文是马哥教育特约金牌讲师、Linux运维专家魏巍的分享《Anisble常用模块入门指南》的文字整理篇。 朋友们晚上好: 今天我为大家带来的分享是 Ansible系列课堂之基础入门-基础模块的使用 难度指数: 2星(满星5星) 技术指数: 5星(满星5星) 理论指数: 2星(满星5星) 面向人群: 自动化运维&初中级运维 简单做下自我介绍: 魏巍: 出生时经医生证实为90后超早期,狂热的单车与开源爱好者,6年Linux一线运维经验,《Ansible权威指南》一书联合作者,做事情常出于“我不懂所以我想知道
小小科
2018/05/02
1.7K0
马哥金牌分享 | 十五分钟实现Ansible常用模块入门
ansible常用模块详解-包含重点:scripts 脚本模块-自动化运维
# ansible 模块语法 ansible-doc -l # 查看 ansible 模块 # wc -l 统计数量 ansible eisc -m command -a "df -h" # ansible 执行eisc组
eisc
2021/04/08
2.5K0
[Ansible专栏]Ansible常用模块介绍和使用 (文末抽奖)
前面我们介绍了,ansible能作为自动化配置管理,其实是由ansible的多种多样的模块来实现的。截止目前,ansible的模块已经高达3000+之多。但是个人在日常工作中,比较常见的大约20多个。下面我就大概介绍一些常见常用的模块。
没有故事的陈师傅
2022/12/06
5660
LINUX运维学习之综合架构篇——Ansible 批量管理服务上
1、主机清单配置 2、 软件模块信息 3、 基于秘钥连接主机 4、 主机需要关闭selinux 5、 软件剧本功能 7、ansible 软件模块应用 ansible官方网站:https://docs.ansible.com/ 模块的应用语法格式: ansible 主机名称/主机组名称/主机地址信息/all -m(指定应用的模块信息) 模块名称 -a(指定动作信息) "执行什么动作" 命令类型模块:
云计算小黑
2021/06/16
1.1K0
Ansible简介、安装、命令及常用模块
  ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。   ansible是基于 paramiko 开发的,并且基于模块化工作,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。ansible不需要在远程主机上安装client/agents,因为它们是基于ssh来和远 程主机通讯的。ansible目前已经已经被红帽官方收购,是自动化运维工具中大家认可度最高的,并且上手容易,学习简单。是每位运维工程师必须掌握的技能之一。
菲宇
2021/12/06
1.1K0
Ansible简介、安装、命令及常用模块
Ansible 常用模块详解
经过前面的介绍,我们已经熟悉了 Ansible 的一些常识性的东西和如何编译安装Ansible,从本章开始我们将全面介绍 Ansible 的各种生产常用模块,这些也是我们使用 Ansible 的过程中必须掌握的重点,本章将介绍和使用 Ansible 中经常使用的一些模块,大体模块分为: 文件操作类,命令执行类,系统管理类,等使我们能对 Ansible 有一个全面的了解.
王 瑞
2022/12/28
1.4K0
Ansible常用模块详解
ansible内置了丰富的模块供用户使用,但是经常使用到的模块却不多。本文主要记录了ansible的一些常用模块以及详细参数 、注意事项等 ,供大家学习。
王先森sec
2023/04/24
1.6K0
Ansible常用模块介绍
1、 ansible-doc 希望知道更加详细的module的信息,最好的方法是使用ansible自带的ansible-doc的-s选项 [root@node1 ~]# ansible-doc -s
程裕强
2018/01/02
1.7K0
Ansible服务常用命令模块详细解析
ansible的命令行管理工具都是由一系列模块、参数所支持的,可以在命令后面加上-h或--help获取帮助。如使用ansible-doc -h或者ansible-doc --help查看其帮助信息
星哥玩云
2022/07/24
1.1K0
Ansible 模块
bash无论在命令行上执行,还是bash脚本中,都需要调用cd、ls、copy、yum等命令;模块就是Ansible的“命令”,模块是ansible命令行和脚本中都需要调用的。常用的Ansible模块有yum、copy、template等。
Alone-林
2023/03/17
1.5K0
Ansible Module 快速入门
Ansible是python 中的一套模块,系统中的一套自动化工具,只需要使用ssh协议连接及可用来系统管理、自动化执行命令等任务。
江小白
2018/12/12
1.9K1
Ansible常用模块实例
为了避免ansible每次下发指令都要输入目标主机密码,所以这里使用(ssh-keygen)在控制主机创建一对秘钥,使用(ssh-copy-id)来下发生成的公钥。
HaydenGuo
2019/12/12
1.2K0
Ansible常用模块实例
Ansible 以及 Ansible-playbook介绍
Anasible 是基于Python2-Paramiko 模块开发的自动化维护工具,实现了批量系统配置、部署、运行等功能。Ansible是基于模块工作的,本身不具备批量部署的功能,如果想要实现批量自动化部署,是Ansible自身的各种模块的集合。
jwangkun
2021/12/23
6.3K0
Ansible 以及 Ansible-playbook介绍
ansible常用模块, 自定义角色
ansible暂时没有类似yum_repository的模块, 因此手动创建sh脚本, 传到受管主机上执行
buiu
2021/11/26
6270
相关推荐
ansible服务部署与使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档