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

ansible 模块进阶及变量

yum 模块进阶

- name: install pkgs
  hosts: webservers
  tasks:
    - name: install web pkgs  # 此任务通过yum安装三个包
      yum:
        name: httpd,php,php-mysqlnd
        state: present
# 根据功能等,可以将一系列软件放到一个组中,安装软件包组,将会把很多软件一起安装上。比如gcc、java等都是开发工具,安装开发工具包组,将会把它们一起安装。
[root@node1 ~]# yum grouplist   # 列出所有的软件包组
[root@node1 ~]# yum groupinstall "Development Tools"
# 如果列出的组名为中文,可以这样进行:
[root@node1 ~]# LANG=C yum grouplist

ansible变量

  • 常用的facts变量

    • ansible_all_ipv4_addresses:所有的IPV4地址
    • ansible_bios_version:BIOS版本信息
    • ansible_memtotal_mb:总内存大小
    • ansible_hostname:主机名
  • facts变量是一个大的由{}构成的键值对字典。在{}中,有很多层级的嵌套。可以通过参数过滤出第一个层级的内容。

[root@pubserver ansible]# ansible web1 -m setup |less

自定义变量

  • 引入变量,可以方便Playbook重用。比如装包的playbook,包名使用变量。多次执行playbook,只要改变变量名即可,不用编写新的playbook。

  • ansible支持10种以上的变量定义方式。常用的变量来源如下:

    • inventory变量。变量来自于主机清单文件
    • facts变量。
    • playbook变量。变量在playbook中定义。
    • 变量文件。专门创建用于保存变量的文件。推荐变量写入单独的文件。
    • 变量文本  >   playbook变量  >   inventory变量

firewalld模块

    • port:声明端口
    • permanent:永久生效,但不会立即生效
    • immediate:立即生效,临时生效
    • state:enabled,放行;disabled拒绝
  • 防火墙一般默认拒绝,明确写入允许的服务。

template模块
  • copy模块可以上传文件,但是文件内容固定

  • template模块可以上传具有特定格式的文件(如文件中包含变量)

  • 当远程主机接收到文件之后,文件中的变量将会变成具体的值

  • template模块上传的文件,使用的语法叫Jinja2。

  • src:要上传的文件
  • dest:目标文件路径

进阶语法

触发执行任务

  • 通过handlers定义触发执行的任务
  • handlers中定义的任务,不是一定会执行的
  • 在tasks中定义的任务,通过notify关键通知handlers中的哪个任务要执行
  • 只有tasks中的任务状态是changed才会进行通知。

when条件

  • 只有满足某一条件时,才执行任务

  • 常用的操作符:

    • ==:相等
    • !=:不等
    • >:大于
    • <:小于
    • <=:小于等于
    • >=:大于等于
  • 多个条件或以使用and或or进行连接

  • when表达式中的变量,可以不使用{{}}

# 当dbs组中的主机内存大于2G的时候,才安装mysql-server
[root@pubserver ansible]# vim when1.yml
---
- name: install mysql-server
  hosts: dbs
  tasks:
    - name: install mysql-server pkg
      yum:
        name: mysql-server
        state: present
      when: ansible_memtotal_mb>2048
# 如果目标主机没有2GB内存,则不会安装mysqld-server

相关文章:

ansible 模块进阶及变量

yum 模块进阶 - name: install pkgs hosts: webservers tasks: - name: install web pkgs # 此任务通过yum安装三个包 yum: name: httpd,php,php-mysqlnd state: present # 根据功能等&#xff0c;可以将一系列软件放到一个组中&#xff0c;安装软件包组&#xff0c;将会把很…...

MYSQL数据库安装

一.编译安装MySQL服务 1.安装环境依赖包 2.将安装mysql 所需软件包传到/opt目录下 mysql-boost-5.7.44.tar tar zxvf mysql-boost-5.7.44.tar.gz 3.配置软件模块 cd /opt/mysql-5.7.44/ cmake \ -DCMAKE_INSTALL_PREFIX/usr/local/mysql \ -DMYSQL_UNIX_ADDR/usr/local/mysq…...

Pycharm配置远程调试

第1步&#xff1a;添加SSH Inerpreter 打开Settings --> Project interpreter配置项&#xff0c;配置如下两项 Project Interpreter添加SSH inerpreter 首次使用的远程环境需要填写ip及账号密码&#xff0c;建立ssh连接&#xff0c;然后选择对应的远端python路径 Path mapp…...

【Java面试】二十二、JVM篇(下):JVM参数调优与排查

文章目录 1、JVM的参数在哪里设置2、常见的JVM调优参数有哪些3、常见的JVM调优工具有哪些4、Java内存泄漏的排查思路5、CPU飙高的排查思路 1、JVM的参数在哪里设置 war包部署&#xff0c;在tomcat中设置&#xff0c;修改TOMCAT_HOME/bin/catalina.sh 文件 jar包启动&#xff0…...

统计信号处理基础 习题解答10-17

题目&#xff1a; 在选择不含信息的或者不假设任何先验知识的先验PDF时,我们需要从数据中得到最大的信息量。在这种方式下,数据是了解未知参数的主要贡献者。利用习题10.15的结果,这种方法可以通过选择使I最大的来实现。对于例10.1的高斯先验PDF,该如何选择和2使得 是不含信息…...

嵌套使用模板类

#include<iostream> using namespace std;template <class Datatype> class Stack { private:Datatype* items;//栈数组int stacksize;//栈的实际大小int top;//栈顶指针 public://构造函数&#xff1a;1&#xff09;分配栈数组内存&#xff0c;2&#xff09;把栈顶…...

adb卸载系统应用

1.进入shell adb shell2.查看所有包 pm list packages3.查找包 如查找vivo相关的包 pm list packages | grep vivo发现包太多了,根本不知道哪个是我们想卸载的应用 于是可以打开某应用,再查看当前运行应用的包名 如下: 4.查找当前前台运行的包名 打开某应用,在亮屏状态输入 …...

Rapidfuzz,一个高效的 Python 模糊匹配神器

目录 01初识 Rapidfuzz 什么是 Rapidfuzz? 为什么选择 Rapidfuzz? 安装 Rapidfuzz 配置 Rapidfuzz 02基本操作 简单比率计算 03高级功能 查找单个最佳匹配 查找多个最佳匹配 使用阈值优化性能 04实战案例…...

【猫狗分类】Pytorch VGG16 实现猫狗分类1-数据清洗+制作标签文件

Pytorch 猫狗分类 用Pytorch框架&#xff0c;实现分类问题&#xff0c;好像是学习了一些基础知识后的一个小项目阶段&#xff0c;通过这个分类问题&#xff0c;可以知道整个pytorch的工作流程是什么&#xff0c;会了一个分类&#xff0c;那就可以解决其他的分类问题&#xff0…...

磁盘管理 磁盘介绍 MBR

track&#xff1a;磁道&#xff0c;就是磁盘上同心圆&#xff0c;从外向里&#xff0c;依次1号、2号磁道..... sector&#xff1a;扇区&#xff0c;将磁盘分成一个一个扇形区域&#xff0c;每个扇区大小是512字节&#xff0c;从外向里&#xff0c;依次是1号扇区、2号扇区... cy…...

JSON响应中提取特定的信息——6.14山大软院项目实训2

在收到的JSON响应中提取特定的信息&#xff08;如response字段中的文本&#xff09;并进行输出&#xff0c;需要进行JSON解析。在Unity中&#xff0c;可以使用JsonUtility进行简单的解析&#xff0c;但由于JsonUtility对嵌套对象的支持有限&#xff0c;通常推荐使用第三方库如N…...

【C++高阶】高效搜索的秘密:深入解析搜索二叉树

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;C “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;C多态 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀二叉搜索树 &#x1f4d2;1. 二叉搜索树&…...

《软件定义安全》之七:SDN安全案例

第7章 SDN安全案例 1.DDoS缓解 1.1 Radware DefenseFlow/Defense4All Radware在开源的SDN控制器平台OpenDaylight&#xff08;ODL&#xff09;上集成了一套抗DDoS的模块和应用&#xff0c;称为Defense4ALL。其架构如下图&#xff0c;主要有两部分&#xff1a;控制器中的安全…...

java语言his系统医保接口 云HIS系统首页功能实现springboot框架+Saas模式 his系统项目源码

java语言his系统医保接口 云HIS系统首页功能实现springboot框架Saas模式 his系统项目源码 HIS系统的实施旨在整个医院建设企业级的计算机网络系统&#xff0c;并在其基础上构建企业级的应用系统&#xff0c;实现整个医院的人、财、物等各种信息的顺畅流通和高度共享&#xff0c…...

使用vscode插件du-i18n处理前端项目国际化翻译多语言

前段时间我写了一篇关于项目国际化使用I18n组件的文章&#xff0c;Vue3 TS 使用国际化组件I18n&#xff0c;那个时候还没真正在项目中使用&#xff0c;需求排期还没有定&#xff0c;相当于是预研。 当时就看了一下大概怎么用&#xff0c;改了一个简单的页面&#xff0c;最近需…...

双系统下,如何隐藏另一个系统分区?

前言 最近有小伙伴在公众号下留言&#xff1a; 小伙伴说&#xff1a;“双系统时&#xff0c;非当前系统的系统盘能不能屏蔽&#xff1f;&#xff01;比如Win7的系统盘在Win10系统时&#xff0c;盘符成了D盘&#xff0c;安装应用软件时&#xff0c;有些文件就到了D盘&#xff0…...

电脑意外出现user32.dll丢失的八种修复方法,有效解决user32.dll文件丢失

遇到与 user32.dll 相关的错误通常是因为该文件已损坏、丢失、或者与某些软件冲突。今天这篇文章寄给大家介绍八种修复user32.dll丢失的方法&#xff0c;下面是一步步的详细教程来解决这个问题。 1. 重新启动电脑 第一步总是最简单的&#xff1a;重新启动你的电脑。许多小问题…...

CUDA系列-Kernel Launch-8

这里写目录标题 kernel launch 本章主要追踪一下kernel launch的流程&#xff0c;会不断完善。 kernel launch 先抛出一个问题&#xff0c;如果在一个循环中不断的发送kernel&#xff08;kernel 内部while死循环&#xff09;&#xff0c;会是什么结果。 // kernel 函数 __glo…...

# 消息中间件 RocketMQ 高级功能和源码分析(四)

消息中间件 RocketMQ 高级功能和源码分析&#xff08;四&#xff09; 一、 消息中间件 RocketMQ 源码分析&#xff1a;回顾 NameServer 架构设计。 1、RocketMQ 架构设计 消息中间件的设计思路一般是基于主题订阅发布的机制&#xff0c;消息生产者&#xff08;Producer&…...

如何通过数据库与AI实现以图搜图?OceanBase向量功能详解

OceanBase支持向量数据库的基础能力 当前&#xff0c;数据库存储系统与人工智能技术的结合&#xff0c;可以体现在两个主要的应用方向上。 一、近似搜索。它利用大语言模型&#xff08;LLM&#xff0c;简称大模型&#xff09;的嵌入&#xff08;embedding&#xff09;技术&am…...

Arm SVE特性寄存器ID_AA64ZFR0_EL1解析与优化

1. Arm SVE特性寄存器ID_AA64ZFR0_EL1深度解析在现代处理器架构中&#xff0c;特性寄存器&#xff08;Feature ID Registers&#xff09;扮演着硬件能力标识的关键角色。作为Armv8-A架构中Scalable Vector Extension&#xff08;SVE&#xff09;的核心配置寄存器&#xff0c;ID…...

推理服务为什么一加 Stop Sequences 就开始流式看着正常却尾延迟抖动:从 Token Suffix Match 到 Batch Exit 对齐的工程实战

很多团队给推理服务加 stop sequences&#xff0c;原意是让 JSON、工具调用或 SQL 输出在边界处稳稳停住。⚠️ 真进生产后&#xff0c;最先变差的往往不是准确率&#xff0c;而是尾延迟&#xff1a;流式首屏看着正常&#xff0c;GPU 利用率也不低&#xff0c;可 P99 会在高并发…...

2026年度成都App开发推荐榜单专业又靠谱,让你轻松选择最佳应用

在2026年度成都APP开发推荐榜单中&#xff0c;我们为您提供了一系列专业的开发团队。这些团队均具备丰富的行业经验&#xff0c;专注于满足用户需求和优化用户体验。不论是功能开发还是市场推广&#xff0c;推荐的企业都能提供高效且可靠的解决方案&#xff0c;确保您的项目能够…...

Openclaw-Connector:构建高可靠数据集成管道的核心架构与实战

1. 项目概述与核心价值最近在折腾一些自动化流程和跨平台数据同步时&#xff0c;发现了一个挺有意思的项目——Openclaw-Connector。这名字听起来就有点“机械爪”的感觉&#xff0c;实际上它也确实是一个旨在“抓取”和“连接”不同系统、不同数据源的中间件工具。简单来说&am…...

Jetpack Compose + 协程(Coroutine)完整实战教程

Jetpack Compose 协程&#xff08;Coroutine&#xff09;完整实战教程 现代 Android 开发里&#xff1a; Compose 协程 Flow 已经是官方主流架构。 如果你只会&#xff1a; Button(onClick {})但不会&#xff1a; LaunchedEffectrememberCoroutineScopeStateFlowcollectAsS…...

解决kali服务器ssh登陆受限

1. 给服务器配置 ssh 端口映射&#xff08;默认22&#xff09;&#xff0c;并开放相应的端口防火墙 2. 安装并为一般用户&#xff08;这里以 kali 用户为例&#xff09;配置 sudo 命令 (在 root 用户下) apt update apt install -y sudo usermod -aG sudo kali # 测试确认一下 …...

AI智能体开发脚手架:基于模板快速构建可工程化智能体系统

1. 项目概述&#xff1a;一个为AI智能体开发者准备的“开箱即用”脚手架如果你正在尝试构建一个能够自主执行复杂任务的AI智能体&#xff0c;那么你很可能已经体会过从零开始的痛苦&#xff1a;环境配置、框架选型、工具集成、API对接、日志管理……每一个环节都充满了选择与陷…...

软件测试新人必看:入职前3个月如何快速站稳脚跟

对于软件测试新人而言&#xff0c;入职前3个月是职业发展的关键奠基期。这一阶段不仅要完成从校园到职场的身份转变&#xff0c;更要快速掌握专业技能、融入团队节奏&#xff0c;为后续的职业发展筑牢根基。本文将从专业角度出发&#xff0c;为软件测试新人拆解入职前3个月的成…...

八大网盘直链解析工具:告别限速,实现高速下载自由

八大网盘直链解析工具&#xff1a;告别限速&#xff0c;实现高速下载自由 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘…...

ETS2LA:让《欧洲卡车模拟2》自动驾驶的终极解决方案

ETS2LA&#xff1a;让《欧洲卡车模拟2》自动驾驶的终极解决方案 【免费下载链接】Euro-Truck-Simulator-2-Lane-Assist Plugin based interface program for ETS2/ATS. 项目地址: https://gitcode.com/gh_mirrors/eur/Euro-Truck-Simulator-2-Lane-Assist 你是否曾梦想在…...