自动化运维ansible(ansible-playbook)

news/2024/10/22 13:51:37/

一、ansible-playbook的构成

Inventory:主机列表,表示剧本中的任务要应用在哪些主机上;
Tasks:具体任务,即调用哪些模块完成操作,可以配置多个任务;
Variables:变量,包含内置变量和自定义变量;
Templates:模板,即使用模板语法来灵活变更配置文件;
Handlers与notify:触发器,由某事件触发执行的操作,比如修改配置文件后自动重启服务;

二、语法要求

(1)playbook本质是包含了一个或多个play的YAML配置文件,通常以.yaml或者.yml结尾;
(2)在单一的playbook文件中,使用连续的三个中横线(---)作为每个play的区分;
(3)缩进必须统一,不能空格和tab混合使用,缩进级别需要一致,同样的缩进代表同样的级别;
(4)冒号:冒号后面需要空格,除非以冒号结尾;
(5)短横杠:列表项,后面跟空格;
(6)缩进两个字符,默认的tab键是四个字符,所以要使用tab键,需要修改.vimrc;
[root@ansible ~]# vim /root/.vimrc
set tabstop=2

三、参数说明

--check | -C:只检测可能会发生的改变,但不真正执行操作;
--list-hosts:列出运行任务的主机;
--list-tags:列出playbook文件中定义的所有tags;
--list-tasks:列出playbook文件中定义的所有任务;
--syntax-check:语法检查
--limit:主机列表,只针对主机列表中的某个主机或者某个组执行;
-f:指定并发数,默认为5个;
-t:指定tags运行,运行某一个或者多个tags,前提是playbook中有定义tags;

四、示例

[root@192 ansible]# cat playbook01.yml
---                       #固定格式
- hosts: harbor      #定义需要执行的主机或主机组remote_user: root       #远程用户vars:                   #定义变量http_port: 8088       #变量tasks:                  #定义一个任务- name: create new file          #定义任务的名称file: name=/tmp/playtest.txt state=touch   #调用模块,具体要做的事情- name: install packageyum: name=httpd- name: config httpdtemplate: src=/etc/httpd/conf/httpd.conf dest=/etc/httpd/conf/httpd.confnotify:   #触发器,当条件触发后需要做的操作,配合handlers使用- restart apache  #需要引用的handlers的名字- name: copy index.htmlcopy: src=/var/www/html/index.html dest=/var/www/html/index.html- name: start httpdservice: name=httpd state=startedhandlers:   #notify定义的触发执行相应的处理动作- name: restart apache                     #要与notify定义的内容相同service: name=httpd state=restarted      #触发要执行的动作

在这里插入图片描述
巡检示例:

[root@192 ansible]# cat os.yml
- hosts: harborgather_facts: notasks:- name: 'tongji'shell: |-echo "cpu型号: `cat /proc/cpuinfo | grep  name |uniq |awk '{print $6,$7}'`"echo "cpu个数:`cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l`"echo "cpu总核数: `grep -c 'model name' /proc/cpuinfo`"echo "物理内存总量:`free -h | grep Mem | awk '{print $2}'`"echo "已使用内存总量(操作系统):`free -h | grep Mem | awk '{print $3}'`"echo "剩余内存总量(操作系统):`free -h | grep Mem | awk '{print $7}'`"echo "操作系统磁盘总量:`df -Th |grep -E /yn$ | awk '{ print $3}'`"echo "操作系统磁盘可用量:`df -Th |grep -E /yn$ | awk '{ print $5}'`"register: taskResult- name: 'check resoult'debug: var=taskResult.stdout

http://www.ppmy.cn/news/1169193.html

相关文章

[论文笔记]GPT-2

引言 今天继续GPT系列论文, 这次是Language Models are Unsupervised Multitask Learners,即GPT-2,中文题目的意思是 语言模型是无监督多任务学习器。 自然语言任务,比如问答、机器翻译、阅读理解和摘要,是在任务相关…

【源码】C/C++运动会计分系统 期末设计源码

文章目录 题目介绍功能源码效果展示带报告(内容) 题目介绍 使用语言: 两个版本都会发: 版本1:C语言 版本2: C 代码量: 500 题目介绍: 要求:初始化输入:N-参赛…

使用Python打造微信高效自动化操作教程

引言 在如今数字化时代,人们对于效率的追求越来越强烈,尤其是在工作和学习中。自动化操作成为了提高生产力的有效途径之一,而PyAutoGUI和Pyperclip作为Python中的两个强大库,为我们实现自动化操作提供了便利。本文将向大家介绍如…

2023-10-20 游戏开发-unity不同版本下载-记录

unity hub下载页面: Unity官方下载_Unity最新版_从Unity Hub下载安装 | Unity中国官网 Unity最新版本下载-Unity稳定版本 | Unity中国官网 不同版本引擎下载: UnityHub国际版下载链接 复制链接地址,在浏览器导航栏粘入地址,打开UnityHub,等待…

ARM CoreSight相关模块简介

最近在学习ARM CPU软硬件开发,对于CoreSight看到很多模块,简单总结了下。 1. DAP ARM DAP (Debug Access Port) 的主要作用是为调试工具提供直接访问 ARM 处理器和其它相关硬件的途径。DAP 是 ARM CoreSight 调试和追踪技术的一部分,它允许…

有什么小程序可以下载视频号的视频?

​最近有一些朋友问我,【视频号下载助手】和【视频下载bot】小程序,有什么作用? 首先视频号下载助手是协助用户进行下载的,但由于下载要符合平台规定,我们就将视频下载助手与视频下载bot小程序想结合的模式&#xff0…

展馆导览系统之AR互动式导航与展品语音讲解应用

一、项目背景 随着科技的进步和人们对于文化、艺术、历史等方面需求的提升,展馆在人们的生活中扮演着越来越重要的角色。然而,传统的展馆导览方式,如纸质导览、人工讲解等,已无法满足参观者的多元化需求。为了提升参观者的体验&a…

LeetCode2409——统计共同度过的日子数

博主的解法过于冗长,是一直对着不同的案例debug修改出来的,不建议学习。虽然提交成功了,但是自己最后都不知道写的是啥了哈哈哈。 package keepcoding.leetcode.leetcode2409; /*Alice 和 Bob 计划分别去罗马开会。给你四个字符串 arriveA…