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

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

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

相关文章

shell脚本之数组及冒泡排序

1.数组定义&#xff1a;在集合当中指定多个元素&#xff0c;元素的类型可以是整数、字符串及浮点。 2.数组作用&#xff1a;一次性的定义多个元素&#xff0c;可以为变量赋值提供便利。 3.数组的定义方法&#xff1a; 数组名&#xff08;a b c d&#xff09; 数组名不能重复…

【速过】2024年9月三级数据库技术题库+知识点总结

24年3月已经考了一次数据库&#xff0c;实话&#xff0c;三级比二级简单一些&#xff0c;知识点都比较集中&#xff0c;50%-60%是题库里面的原题&#xff0c;考前只要好好的过一遍题库考到80以上完全没有问题&#xff0c;你实在不会答案背下来也是可以的&#xff0c;不过更多的…

kotlin函数

1、函数定义 // 下边定义了main函数 fun main() {} 2、函数的类型 // foo函数定义 fun foo () {} // 对应无参类型 () -> Unit fun foo (a: Int):String {} // 对应有参类型 (Int) -> String 3、函数的引用 函数的引用类似C语言中的函数指针&#xff0c;可用于函数传…

外包干了2年,彻底废了...

先说一下自己的情况。大专生&#xff0c;17年通过校招进入湖南某软件公司&#xff0c;干了接近2年的点点点&#xff0c;今年年上旬&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落&#xff01;而我已经在一个企业干了五年的功能测试…

【docker安装rabbitmq】

docker安装rabbitmq 1.查阅rabbitmq的Dokcer Hub官方说明 rabbitmq地址&#xff0c;因为我们需要使用的是带管理界面的rabbitmq服务。所以我们需要下载的rabbitmq:management镜像 docker pull rabbitmq:management2.启动rabbitmq 2.1.快速启动 One of the important thing…

笔记本系统盘移植与windowsLinux双系统安装

目录 一、 前言二、 Windows系统移植二、 安装Linux三、 Windows分区配置 一、 前言 笔记本内存不够了&#xff0c;之前给笔记本添加了一个机械硬盘&#xff0c;也几乎爆满了&#xff0c;于是购置了1T的固态硬盘&#xff0c;打算用这个固态硬盘安装双系统&#xff0c;剩余空间…

[面试题]消息队列

[面试题]Java【基础】[面试题]Java【虚拟机】[面试题]Java【并发】[面试题]Java【集合】[面试题]MySQL[面试题]Maven[面试题]Spring Boot[面试题]Spring Cloud[面试题]Spring MVC[面试题]Spring[面试题]MyBatis[面试题]Nginx[面试题]缓存[面试题]Redis[面试题]消息队列 什么是…

喜讯!昂辉科技通过2024年度重点产业链企业(第一批)认定

日前&#xff0c;合肥市推进战略性新兴产业发展工作委员会办公室公布了 2024年度重点产业链企业&#xff08;第一批&#xff09;新入库名单&#xff08;集成电路、新型显示、网络与信息安全、城市安全、空天信息、新能源汽车和智能网联汽车、生物医药、新材料、高端装备、节能环…

嵌入式学习——Linux高级编程复习(网络编程)——day42

1. 协议 通信双方约定的一套标准称为协议 2. OSI参考模型 OSI模型是由国际标准化组织&#xff08;ISO&#xff09;制定的一个概念性的网络通信模型&#xff0c;它将网络通信的功能分为七个层次&#xff0c;从下至上分别为&#xff1a; 物理层&#xff08;Physical Layer&…

百度一下首页制作(HTML+CSS)

部分代码展示&#xff1a; <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>百度一下&#xff0c;你就知道</title><style type"text/css">/*清除元素默认性质*/body { margin: 0;padding: 0;list-…

前端传进来的单选值是0,到了后端加了个逗号

如上图所示&#xff0c;标记的var的值org和id的值orgOrNot不能一样&#xff0c;如果一样&#xff0c;通过id获取&#xff08;#(“#orgOrNot”).find(“option:selected”).val()&#xff09;时候就会出现这种情况 改成如下情况&#xff0c;区别开id

BC-Linux 8.6最小化安装的服务器启用GNOME图形化界面

本文记录了BC-Linux 8.6最小化安装的服务器如何启用GNOME图形化界面的过程。 一、服务器环境 1、系统版本 [rootlocalhost ~]# cat /etc/os-release NAME"BigCloud Enterprise Linux" VERSION"8.6 (Core)" ID"bclinux" ID_LIKE"rhel fe…

在VScode中创建PHP环境

一、下载PHP Server 和 PHP Debug这两个扩展 二、下载完成之后&#xff0c;在VScode中&#xff0c;打开我们写代码的文件 这里是我事先创建好的一些文件&#xff0c;本次环境搭建只需要创建一个.php后缀的文件即可。 先选中.php文件&#xff0c;再点击文件。 点击首选项&#x…

【课程系列05】某心科技AI大模型微调实战营-应用篇

网盘链接 链接: https://pan.baidu.com/s/1oARULXsXn8frkqq4ZKHBLA --来自百度网盘超级会员v6的分享 课程收获 课程内容涉及大模型的介绍、Transformer、Encoder、高级微调技术、Alpaca、AdaLoRA、QLoRA、Prefix Tuning和Quantization等主题 课程截图

龙芯LS2K0300久久派上手体验

介绍 芯片 龙芯2K0300芯片是一款基于LA264处理器核的多功能SoC芯片&#xff0c;可广泛适用于工业控制、通信设备、信息家电和物联网等领域&#xff1b;该芯片采用高集成度设计&#xff0c;可提供丰富的功能接口&#xff0c;满足多场景应用需求&#xff0c;同时支持低功耗技术…

VMware 虚拟机共享宿主机文件夹

一、背景 在虚拟机中&#xff0c;需要写文件到宿主机的文件系统中 宿主机的文件共享给虚拟机使用 这些场景就涉及到VM的虚拟机怎么访问宿主机的磁盘文件夹 二、软件背景 宿主机&#xff1a;window机器&#xff0c;本文是win7 虚拟软件&#xff1a;VMware12.5.6&#xff0…

基于自编码器的滚动轴承异常检测方法(NASA-IMS数据,Python)

代码较为简单。 import numpy as np import pandas as pd from tensorflow import keras from tensorflow.keras import layers from matplotlib import pyplot as plt df_stats_Ch1_test2 pd.read_csv("estadisticos_test2_ch1.csv" , sep ,) X_Ch1 df_stats_Ch…

移植案例与原理 - HDF驱动框架-驱动配置(2)

1.2.7 节点复制 节点复制可以实现在节点定义时从另一个节点先复制内容&#xff0c;用于定义内容相似的节点。语法如下&#xff0c;表示在定义"node"节点时将另一个节点"source_node"的属性复制过来。 node : source_node示例如下&#xff0c;编译后bar节点…

​海康威视 isecure center 综合安防管理平台任意文件上传漏洞

文章目录 前言声明一、漏洞描述二、影响版本三、漏洞复现四、修复方案 前言 海康威视是以视频为核心的智能物联网解决方案和大数据服务提供商,业务聚焦于综合安防、大数据服务和智慧业务。 海康威视其产品包括摄像机、多屏控制器、交通产品、传输产品、存储产品、门禁产品、消…

项目五 OpenStack镜像管理与制作

任务一 理解OpenStack镜像服务 1.1 •什么是镜像 • 镜像通常 是指一系列文件或一个磁盘驱动器的精确副本 。 • 虚拟机 所使用的虚拟磁盘&#xff0c; 实际上是 一种特殊格式的镜像文件 。 • 云 环境下尤其需要 镜像。 • 镜像 就是一个模板&#xff0c;类似于 VMware 的虚拟…