当前位置: 首页 > news >正文

入门Ansible常用模块

自动化运维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),不得出现特殊符号<、>、|、;、&

ansible node01 -m command -a 'free -m' => ansible node01 -a 'free -m'

ansible node01 -a 'touch /opt/test001.log'

获取负载信息

ansible node01 -a 'uptime'

备份一份日志

ansible node01 -a "cp /opt/test001.log /var/log chdir=/"

ansible node01 -a "ls -l /var/log chdir=/"

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

ansible node01 -a "cp /opt/tt/test001.log /var/log chdir=/ removes=/opt/"

Shell模块

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

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

ansible node01 -m shell -a "date > /opt/datetest01.log"

ansible node01 -m shell -a "cat /opt/datetest01.log chdir=/"

过滤mysql进程信息

ansible node01 -m shell -a "ps -ef|grep mysql"

ansible node01 -m shell -a "date '+%F %T' > /opt/datetest01.log"

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

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信息

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目的路径

ansible node01 -m copy -a "src=/opt/cpu_per.sh dest=/opt/"

发送文件并修改文件权限

ansible node01 -m copy -a "src=/opt/linux_Inspection.sh dest=/opt/linux_Inspection.sh mode=700"

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

ansible node01 -m copy -a "src=/opt/cpu_per.sh dest=/opt/ backup=yes"

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

覆盖原有内容

ansible node01 -m copy -a "content='hello word' dest=/opt/test001.log"

ansible node01 -m shell -a "cat /opt/test001.log"

开启备份

ansible node01 -m copy -a "content='hello word' dest=/opt/test001.log backup=yes"

复制文件夹

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

ansible node01 -m copy -a "src=/opt/ dest=/opt/copyDemo"

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

ansible node01 -m copy -a "src=/opt dest=/opt/copyDemo"

File模块

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

文档帮助ansible-doc -s file

创建文件

ansible node01 -m file -a "path=/opt/ansibleTest.log state=touch"

修改文件属性并设定权限

ansible node01 -m file -a "path=/opt/linux-ansible.log state=touch owner=adm group=adm mode=700"

创建文件夹

ansible node01 -m file -a "path=/opt/ansibleDemo state=directory"

创建软连接文件

ansible node01 -m file -a "src=/opt/ansibleTest.log dest=/opt/ansibleDemo/ansibleTest.log state=link"

强制创建软连接文件

ansible node01 -m file -a "src=/opt/ansible1234 dest=/opt/ansibleDemo/ansibleTest123.log state=link force=yes"

Ping模块

ansible node01 -m ping

ansible all -m ping

Script模块

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

ansible node01 -m script -a "/opt/cpu_per.sh"

查看命令执行详细过程

ansible node01 -vvvv -m script -a "/opt/cpu_per.sh"

http://www.lryc.cn/news/378138.html

相关文章:

  • 全能AI客户端:ChatGPT Web Midjourney Proxy,AI绘画+GPT4o对话
  • Java基础 - 练习(四)打印九九乘法表
  • 软件测试——稳定性测试:adb Monkey
  • 前端vue实战项目结构、常用编辑器vs code 配置
  • Linux系统性能优化实战经验
  • 2024广东省职业技能大赛云计算赛项实战——Ansible部署Zabbix
  • Linux—— ansible循环
  • RabbitMQ 开发指南
  • ElasticSearch学习笔记(二)文档操作、RestHighLevelClient的使用
  • python离线安装第三方库、及其依赖库(单个安装,非批量移植)
  • 昨天发的 npm 包,却因为 registry 同步问题无法安装使用
  • Redis 数据恢复及持久化策略分析
  • vscode 快捷键侧边栏
  • FreeRTOS:1、任务通知vTaskNotifyGiveFromISR保证实时性
  • 监督学习:从数据中学习预测模型的艺术与科学
  • 深入理解Java虚拟机(JVM)中的垃圾回收器
  • 视频集市新增支持多格式流媒体拉流预览
  • 定时器-前端使用定时器3s轮询状态接口,2min为接口超时
  • python实践笔记(二): 类和对象
  • 指定GPU跑模型
  • Windows桌面运维----第五天
  • bash和dash的区别(及示例)
  • Java基础入门day65
  • 解密制度的规定和解密工作的具体流程
  • 实际中常用的网络相关命令
  • 机器学习补充
  • 机器学习——RNN、LSTM
  • Java项目学习(员工管理)
  • 视觉SLAM14精讲——相机与图像3.3
  • 【路径规划】基于粒子群结合遗传算法实现机器人栅格地图路径规划