玩转ansible之参数调试和文件操作篇

更多IT技术文章,欢迎关注微信公众号“运维之美”

玩转ansible之参数调试和文件操作篇

  • 01 剧本调试和帮助
  • 02 使用场景举例

上节我们学习了使用ansible进行软件安装,那么安装完软件后,就需要linux系统和软件配置修改了,对于linux主机批量修改内核参数或者软件配置,使用ansible来实现是最合适不过了。ansible语法众多,学会调试和使用命令帮助更加重要。

01 剧本调试和帮助

ansible-ploybook剧本的语法和模块很多,由于格式和其他因素可能导致报错,在使用中学会调试和检查工具,以及排错,在我看来比记语法更多重要。

  • 剧本检查
#检查Playbook的语法是否正确,但不执行任何操作
ansible-playbook --syntax-check playbook.yml#列出Playbook中的所有任务。
ansible-playbook --list-tasks playbook.yml #列出Playbook中将要执行剧本的所有主机
ansible-playbook --list-hosts playbook.yml#列出Playbook中定义的所有标签
ansible-playbook --list-tags playbook.yml#列出所有任务的标签,包括未使用的标签
ansible-playbook --list-tags playbook.yml --tags=all#列出所有任务以及它们的标签。
ansible-playbook --list-tags playbook.yml --list-tasks
  • 使用帮助
ansible-playbook --help:获取有关ansible-playbook命令的帮助信息。ansible-doc -l:列出所有可用的Ansible模块及其简要描述。ansible-doc module_name:查看特定模块的文档和使用帮助。ansible-doc --help:获取有关ansible-doc命令的帮助信息。

例如执行ansible-doc yum除了可以看到可用参数,还可以看到使用案例

在这里插入图片描述

02 使用场景举例

  • 文件创建

使用场景:创建/data目录,并在目录下创建file.txt的文件

- name: touch filehosts: k8s_nodebecome: yes tasks:- name: 创建一个目录file:path: /datastate: directory- name: 创建一个文件file:path: /data/file.txtstate: touch

执行结果
图片

  • 文件复制

等同于copy命令

 - name: Copy Files to dest dir hosts: target_hosts  tasks:  - name: Copy file  copy:  src: /path/to/source/file  dest: /path/to/destination/file  owner: user  group: group  mode: 0644   
  • 删除文件

等同于rm命令

 - name: Delete Files  hosts: target_hosts  tasks:  - name: Delete file  file:  path: /path/to/file  state: absent    
  • 备份和改名
- name: 移动文件command: mv /opt/sourcefile.txt /tmp/newfile.txt

command模块调用linux命令和直接执行一样,只不过是批量的,效率更高

  • 追加数据

等同于linux命令sed插入数据

 - name: Insert Line in File  hosts: target_hosts  tasks:  - name: Insert line to file  lineinfile:  path: /path/to/file  line: 'hello world'    
  • 替换操作

sed也有修改替换数据的能力,使用此剧本可以修改内核参数

- name: 临时关闭 selinuxhosts: target_hostsshell: "setenforce 0"failed_when: false
- name: 永久关闭 selinuxhosts: target_hostslineinfile:dest: /etc/selinux/configregexp: "^SELINUX="line: "SELINUX=disabled"  #修改为disabled后即可关闭selinux
文件查找

作用和linux命令find相同,当然你也可以通过command模块搭配find命令实现此功能

- name: find file in dirhosts: kube_nodetasks:- name: find txt filefind:paths: /optfile_type: filepatterns: '*.txt'register: found_files- name: 打印结果debug:msg: "{{item.path}}"with_list: "{{found_files.files}}"

查找出文件后,可以进行删除或者其他后续操作

  • 判断文件是否存在
 - name: 检查目录是否存在hosts: kube_nodebecome: yes  # 使用 sudo 或 root 权限tasks:- name: 使用 stat 模块检查目录是否存在stat:path: /tmp  # 指定要检查的目录路径register: dir_check- name: 打印检查结果debug:var: dir_check.stat.exists

这里首先使用 stat 模块来检查目标目录的存在性,将结果保存到 dir_check 变量中。然后,使用 debug 模块来打印检查结果,dir_check.stat.exists 变量将包含 True 或 False,表示目录是否存在。

  • 使用template模版

使用template模板

- name: 生成配置文件hosts: target_hoststasks:- name: 使用模板生成配置文件template:src: /path/to/template.j2dest: /path/to/configfile.conf

通过用于将预先定义好template的文件作为模版提供给软件或者修改内核参数使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/168569.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能与教育:未来的技术融合

人工智能与教育:未来的技术融合 随着科技的飞速发展,人工智能(AI)逐渐渗透到我们生活的方方面面,包括教育领域。AI与教育的结合,有望引发一场教育变革,提高教学效果,实现个性化学习&…

Python+requests+unittest+excel接口自动化测试框架

一、框架结构: 工程目录 二、Case文件设计 三、基础包 base 3.1 封装get/post请求(runmethon.py) impimport jsonclass RunMethod:def post_main(self,url,data,headerNone):res Noneif header !None: res requests.post(urlurl,datadata,…

语音识别与自然语言处理(NLP):技术前沿与未来趋势

语音识别与自然语言处理(NLP):技术前沿与未来趋势 随着科技的快速发展,语音识别与自然语言处理(NLP)技术逐渐成为人工智能领域的研究热点。这两项技术的结合,使得机器能够更好地理解和处理人类语…

从windows iso文件中提取install.wim

1、首先从微软官方下载需要的windows镜像 https://www.microsoft.com/zh-cn/software-download/windows10/ 2、在下载的iso文件右键,打开压缩包,在sources文件夹下,应该就可以看到install.wim了。但似乎在最新的win10版本,微软采…

AI爆文变现脚本:易用且免费的自动写作脚本更新了

之前给大家分享的AI爆文变现写作脚本 由于时间仓促,加上我对很多东西不熟悉 免费版本对新手小白来说,安装部署起来是非常的困难 于是这几天我加班加点把整个软件的部署简化 现在无需复杂的环境配置安装,下载配置下就可以使用了。 免费版…

界面组件DevExpress ASP.NET Core v23.1 - 进一步升级UI组件

DevExpress ASP.NET Core Controls使用强大的混合方法,结合现代企业Web开发工具所期望的所有功能。该套件通过ASP.NET Razor标记和服务器端ASP.NET Core Web API的生产力和简便性,提供客户端JavaScript的性能和灵活性。ThemeBuilder工具和集成的Material…

自动化测试测试框架封装改造

PO模式自动化测试用例 PO设计模式是自动化测试中最佳的设计模式,主要体现在对界面交互细节的封装,在实际测试中只关注业务流程就可以了。 相较于传统的设计,在新增测试用例后PO模式有如下优点: 1、易读性强 2、可扩展性好 3、…

实用技巧:嵌入式人员使用http服务模拟工具模拟http服务器测试客户端get和post请求

文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/134305752 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结…

Python实现局部二进制算法(LBP)

1.介绍 局部二进制算法是一种用于获取图像纹理的算法。这算法可以应用于人脸识别、纹理分类、工业检测、遥感图像分析、动态纹理识别等领域。 2.示例 """ 局部二进制算法,计算图像纹理特征 """ import cv2 import numpy as np imp…

C++17中std::optional的使用

模版类std::optional管理一个可选的(optional)存储值(contained value)&#xff0c;即可能存在也可能不存在的值。std::optional的一个常见用例是存储可能失败的函数的返回值。与其它方法相反(例如std::pair<T, bool>),std::optional可以很好地处理构造成本高昂的对象&am…

npm 下载包失败解决方案

1.【问题描述】使用 npm 下载vue项目依赖包时失败&#xff0c;版本不一致。 【解决方法】使用 npm install --force npm install --force 是一个命令行指令&#xff0c;用于在 Node.js 环境中使用 npm&#xff08;Node Package Manager&#xff09;安装包或模块。–force 参数表…

RK3568平台 查看内存的基本命令

一.free命令 free命令显示系统使用和空闲的内存情况&#xff0c;包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略。 Mem 行(第二行)是内存的使用情况。 Swap 行(第三行)是交换空间的使用情况。 total 列显示系统总的可用物理内存和交换空间大小。 used 列显…