ansible剧本与变量
1. ansible剧本注意事项注意对齐2个空格不能使用tab剧本以yml或yaml结尾1.1. 第一个剧本- hosts: all tasks: - name: 01.打开冰箱门 shell: echo 01.open /tmp/lidao.txt - name: 02.大象放进去 shell: echo 02.put /tmp/lidao.txt - name: 03.关门 shell: echo 03.close /tmp/lidao.txt1.2. 部署rsync服务剧本编写剧本#1.部署rsync服务端 - hosts: bak tasks: - name: 1.安装rsync yum: name: rsync state: latest - name: 2.分发配置文件 copy: src: ./files/rsyncd.conf dest: /etc/rsyncd.conf - name: 3.添加用户 user: name: rsync shell: /sbin/nologin create_home: no state: present - name: 4.创建目录修改所有者 file: path: /ans/backup/ owner: rsync group: rsync state: directory - name: 5.创建密码文件修改权限 lineinfile: path: /etc/rsync.password line: rsync_backup:1 mode: 0600 create: yes - name: 6.启动服务 systemd: name: rsyncd enabled: yes state: started #2.部署客户端 - hosts: nfs tasks: - name: 分发脚本 copy: src: ./files/rsync_backup.sh dest: /server/scripts/ - name: 定时备份 cron: name: 定时备份 minute: 0 hour: 9 job: bash /server/scripts/rsync_backup.sh /dev/null 21编写rsyncd.conf配置文件##rsyncd.conf start## fake super yes uid rsync gid rsync use chroot no max connections 2000 timeout 600 pid file /var/run/rsyncd.pid lock file /var/run/rsync.lock log file /var/log/rsyncd.log ignore errors read only false list false #hosts allow 10.0.0.0/24 #hosts deny 0.0.0.0/32 auth users rsync_backup secrets file /etc/rsync.password ##################################### [backup] comment ansible backup path /ans/backup/编写备份脚本#!/bin/bash ############################################################## # File Name:rsync_backup.sh # Version:V1.0 # Author:zbl # Organization:zhubaolin.blog.csdn.net # Desc: ############################################################## #1.vars datedate %F_%w backup_dir/backup/ client_iphostname -I | awk {print $2} #rsync server vars rsync_userrsync_backup rsync_server_ip172.16.1.41 module_namebackup rsync_password_file/etc/rsync.client #2.check_backup_dir function check_dir() { if [ ! -f ${backup_dir}${client_ip} ];then mkdir -p ${backup_dir}${client_ip} fi return $? } #3.tar function backup_files() { tar zcf ${backup_dir}${client_ip}/etc-${date}.tar.gz /etc rc$? if [ $rc -eq 0 ];then echo 打包成功,生成校验文件中...... md5sum ${backup_dir}${client_ip}/etc-${date}.tar.gz ${backup_dir}${client_ip}/check.md5 else echo 打包失败 fi return $rc } #4.rsync function rsync_backup() { rsync -av ${backup_dir} ${rsync_user}${rsync_server_ip}::${module_name} --password-file${rsync_password_file} rc$? if [ $rc -eq 0 ];then echo 备份成功 else echo 备份失败 fi return $rc } #5.clean old file function clean_oldfile() { old_filefind ${backup_dir} -type f -mtime 7 |wc -l old_filesizedu -sh ${backup_dir} | cut -f1 if [ ${old_file} -gt 1 ];then find ${backup_dir} -type f -mtime 7 |xargs rm -f else echo 当前大于7天文件数:${old_file},备份文件大小:${old_filesize},无需清理 fi return $? } #6.use func function main() { check_dir backup_files rsync_backup clean_oldfile } main1.3. 定期修改密码剧本- hosts: web vars: password: zbl007 tasks: - name: 定期修改密码 user: name: zbl password: {{ password|password_hash(sha512,zbl) }} state: presentuser模块的password选项指定的是加密后的密码password_hash(sha512,salt)密码插件 sha512哈希算法,加盐随机内容固定的生成随机字符命令mkpasswd -l 20 -s 0 -l:生成20个字符 -s:0个特殊字符2. ansible变量ansible定义变量方法说明与特点剧本定义在剧本中创建与使用仅限当前play部分使用独立文件中定义变量文件把写入到文件中通过vars_files指定调取,play中指定变量文件分组变量推荐根据分组自动调用all组创建与使用最方便。group_varsfacts变量剧本运行的时候默认的任务收集信息根据信息创建的变量如果不用建议关闭功能加速剧本运行register变量类似于shell中反引号功能先执行命令结果保留下来主机清单变量批量修改主机名批量修改密码每台机器都不同使用变量形式存放目录用户名 添加用户 创建目录修改所有者2.1. 分组变量创建变量mkdir -p group_vars/all/ vim group_vars/all/vars.yml user: zbl996 dir: /ansible/zbl996/编写剧本使用变量- hosts: web tasks: - name: 添加用户 user: name: {{ user }} shell: /bin/bash create_home: yes state: present - name: 创建目录 file: path: {{ dir }} owner: {{ user }} group: {{ user }} mode: 0755 state: directory运行剧本ansible-playbook -i hosts 04.user.yml检查2.2. facts变量- hosts: all tasks: - name: 输出变量内容 debug: msg: | 主机名: {{ ansible_hostname }} ip: {{ ansible_all_ipv4_addresses }} 内存总大小: {{ ansible_memtotal_mb }} 系统发行版本: {{ ansible_distribution }} 系统版本: {{ ansible_distribution_major_version }} cpu架构: {{ ansible_architecture }} 系统版本昵称: {{ ansible_distribution_release }} 第1块网卡的ip地址: {{ ansible_default_ipv4.address }}查看所有facts变量ansible 172.16.1.10 -m setup在j2模板中使用facts变量vim files/motd.j2 主机名: {{ ansible_hostname }} ip: {{ ansible_all_ipv4_addresses }} 内存总大小: {{ ansible_memtotal_mb }} 系统发行版本: {{ ansible_distribution }} 系统版本: {{ ansible_distribution_major_version }} cpu架构: {{ ansible_architecture }} 系统版本昵称: {{ ansible_distribution_release }} 第1块网卡的ip地址: {{ ansible_default_ipv4.address }}编写playbook剧本分发带有facts变量的文件- hosts: all tasks: - name: copy template: src: ./files/motd.j2 dest: /etc/motd运行playbook剧本ansible-playbook -i hosts 06.facts_copy.yml检查2.2.1. 关闭facts变量ansible.cfg配置文件中添加gathering explicit2.2.2. 临时使用facts变量在playbook中添加- hosts: all gather_facts: true tasks:2.3. register注册变量在playbook中定义register变量- hosts: web tasks: - name: 定义register变量 shell: hostname -I | awk {print $2} register: ip - name: 使用register变量 debug: msg: | 标准输出: {{ ip.stdout }} 错误输出: {{ ip.stderr }} 返回值: {{ ip.rc }} - name: 创建目录 file: path: /backup/{{ ip.stdout }} state: directory运行playbookansible-playbook -i hosts 07.register.yml检查ansible -i hosts web -a ls -l /backup/3. 总结编写剧本playbook目标rsync,nfs,lsyncd,nginx.php,tomcat剧本变量vars,group_vars,facts,register

相关新闻

Mysql 笔记

Mysql 笔记

不管是二叉搜索树还是多路搜索树,只要是搜索树,那么节点的关键字必须是可以通过某种方式进行大小比较的一,选择BTree的原因1.常用的搜索二叉树的,平衡二叉树,红黑树 等,由于每个节点只能存放一个索引关键字…

2026/5/17 12:39:49 阅读更多 →
ansible变量-循环-判断-jinja2模板

ansible变量-循环-判断-jinja2模板

1. ✅ansible变量1.1. 📝主机清单变量-自动修改主机名1️⃣修改主机清单,定义主机名变量vim hosts [lb] 172.16.1.5 hostnamelb01.zhubl.xyz 172.16.1.6 hostnamelb02.zhubl.xyz [web] 172.16.1.7 hostnameweb01.zhubl.xyz 172.16.1.8 hostnameweb02.zhu…

2026/7/3 5:48:00 阅读更多 →
springboot+vue在线商城系统设计与实现

springboot+vue在线商城系统设计与实现

文章目录前言源码获取详细视频演示具体实现截图后端框架SpringBoot前端框架Vue持久层框架MyBaits成功系统案例:参考代码数据库前言 博主介绍:CSDN特邀作者、985高校计算机专业毕业、现任某互联网大厂高级全栈开发工程师、Gitee/掘金/华为云/阿里云/GitHub等平台持续…

2026/5/17 7:55:59 阅读更多 →

最新新闻

iOS激活锁专业绕过:5步解锁闲置iPhone完整指南

iOS激活锁专业绕过:5步解锁闲置iPhone完整指南

iOS激活锁专业绕过:5步解锁闲置iPhone完整指南 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 面对因忘记Apple ID而被锁定的iOS设备,applera1n提供了专业高效的解决方案。这款…

2026/7/3 23:46:25 阅读更多 →
基于WSEN-ISDS与TM4C1299KCZAD的6DoF运动跟踪系统设计

基于WSEN-ISDS与TM4C1299KCZAD的6DoF运动跟踪系统设计

1. 项目概述:基于WSEN-ISDS与TM4C1299KCZAD的全维度运动跟踪系统在工业自动化、无人机导航和机器人控制等领域,精确测量物体在三维空间中的角运动和线性运动是核心需求。WSEN-ISDS(型号2536030320001)作为一款集成3轴加速度计和3轴…

2026/7/3 23:46:25 阅读更多 →
Switch游戏文件管理的瑞士军刀:NSC_BUILDER实战完全指南

Switch游戏文件管理的瑞士军刀:NSC_BUILDER实战完全指南

Switch游戏文件管理的瑞士军刀:NSC_BUILDER实战完全指南 【免费下载链接】NSC_BUILDER Nintendo Switch Cleaner and Builder. A batchfile, python and html script based in hacbuild and Nuts python libraries. Designed initially to erase titlerights encryp…

2026/7/3 23:40:24 阅读更多 →
终极Flash浏览器:让经典Flash游戏重获新生

终极Flash浏览器:让经典Flash游戏重获新生

终极Flash浏览器:让经典Flash游戏重获新生 【免费下载链接】CefFlashBrowser Flash浏览器 / Flash Browser 项目地址: https://gitcode.com/gh_mirrors/ce/CefFlashBrowser 当Adobe停止支持Flash Player后,无数经典的Flash游戏、教育课件和企业内…

2026/7/3 23:40:24 阅读更多 →
Gemini CLI:终端里的本地AI工作流引擎

Gemini CLI:终端里的本地AI工作流引擎

1. 项目概述:这不是一个“命令行工具”,而是一把重新定义本地AI工作流的瑞士军刀Gemini CLI——光看名字,很多人第一反应是“哦,又一个把大模型API封装成命令行的玩具”。我最初也这么想,直到在凌晨三点调试一个自动化…

2026/7/3 23:40:24 阅读更多 →
PLGA-NHS 活性酯聚合物是什么?纳米递送载体专用原料全方位科普详解

PLGA-NHS 活性酯聚合物是什么?纳米递送载体专用原料全方位科普详解

一、PLGA-NHS是什么?PLGA-NHS是一类在纳米医学与生物材料研究中常用的功能化高分子聚合物材料,是在基础材料PLGA(聚乳酸-羟基乙酸共聚物)末端引入NHS(N-羟基琥珀酰亚胺)活性酯基团形成的衍生物。该材料结合…

2026/7/3 23:38:20 阅读更多 →

日新闻

Nginx防御TLS重协商攻击实战:从原理到配置与监控

Nginx防御TLS重协商攻击实战:从原理到配置与监控

1. 项目概述:为什么TLS重协商攻击至今仍需警惕十多年前的CVE-2011-1473,一个关于TLS/SSL协议重协商机制的漏洞,现在提起来还有必要吗?很多运维和开发朋友可能会觉得,这都老掉牙了,现代服务器和客户端不都默…

2026/7/3 0:03:59 阅读更多 →
华为防火墙双通道远程管理实战:Web与SSH配置详解

华为防火墙双通道远程管理实战:Web与SSH配置详解

1. 项目概述:为什么需要双通道远程管理防火墙?在任何一个稍具规模的企业网络里,防火墙都是那个默默守护在边界的关键角色。作为网络工程师,我们不可能每次都跑到机房,插上console线去配置它。远程管理能力,…

2026/7/3 0:03:59 阅读更多 →
AD74413R与PIC18F65K40的高精度工业数据采集方案

AD74413R与PIC18F65K40的高精度工业数据采集方案

1. 项目概述:AD74413R与PIC18F65K40的协同工作在工业自动化和精密测量领域,同时实现高精度模数转换(ADC)和数模转换(DAC)功能是许多复杂系统的核心需求。AD74413R作为一款四通道可配置模拟输入/输出器件,与PIC18F65K40微控制器的组合&#xf…

2026/7/3 0:05:59 阅读更多 →

周新闻

月新闻