Ansible中的playbook

news2024/11/18 16:20:13

目录

一、playbook简介

二、playbook的语法

三、playbook的核心组件

四、playbook的执行命令

五、vim 设定技巧

六、基本示例


一、playbook简介

1、playbook与ad-hoc相比,是一种完全不同的运用。
2、playbook是一种简单的配置管理系统与多机器部署系统的基础,且非常适合于复杂应用的部署。

3、playbook是一种简单的配置管理系统与多机器部署系统的基础,且非常适合于复杂应用的部署。
4、使用playbook可以方便的重用这些代码,可以移植到不同的机器上面,playbook才是ansible真正强大之处。

二、playbook的语法

playbook由YMAL语言编写:

 YAML文件的格式:
1、文件的第一行应该以“---"三个连字符开始,表明YMAL文件的开始
2、在同一行中,#之后的内容表示注释,类似于shell,python
3、YMAL中的列表元素以”-”开头然后紧跟着一个空格,同一个列表中的元素应该保持相同的缩进。

4、一个字典是由一个简单的 键: 值 的形式组成(这个冒号后面必须是一个空格)

5、字典也可以使用缩进形式来表示

特点:

可读性好

和脚本语言交互性号

易于实现

适用程序执行流梳理方式

可扩展性强 

语法简介: 

缩进严格

大小写敏感

key/value可以多行书写也可一行书写,一行书写用,隔开

value可以是个字符串,也可是list

一个play需要包括name和tasks

name 是描述

tasks 是动作

一个name只能包含一个task

扩展名称yml或者yaml 

三、playbook的核心组件

name可选,建议使用,多用于说明
hosts受控主机列表
tasks任务,用于选择执行部分代码

1、主机与用户

---
- hosts: server2  //指定主机组,可以是一个或多个组,用逗号分隔
  remote_user: root  //指定远程主机执行的用户名
  become: yes  //切换用户运行
  become_user: mysql  //指定sudo用户为mysql

 2、tasks列表
(1)play的主体部分是task列表,task列表中的各任务按次序逐个在hosts中指定的主机上执行,即在所有主机上完成第一个任务后再开始第二个任务。如果一个host执行task失败,整个tasks都会回滚。
(2)每一个task必须有一个名称name,这样在运行playbook时,从其输出的任务执行信息中可以很好的辨别出是属于哪一个task的。

四、playbook的执行命令

--check|-C检测(预演)
--syntax-check检测语法正确性
--list-hosts列出hosts
--list-tags列出tag(标签)
--list-tasks列出task(任务)
--limit指定执行主机
-v -vv显示实现过程
ansible-playbook ftp.yml -C
ansible-playbook ftp.yml --syntax-check
ansible-playbook ftp.yml --list-hosts
ansible-playbook ftp.yml --list-tags
ansible-playbook ftp.yml --list-tasks
ansible-playbook ftp.yml --limit 192.168.67.112

 

五、vim 设定技巧

YAML文件有严格的缩进,为编写方便,设定vim

vim ~/.vimrc

autocmd FileType yaml setlocal ai ts=2 sw=2 et

随着微服务的使用,在linux上使用vim或者vi命令编辑yml文件的时候,会自动缩进,导致文件根本 无法使用。

解决办法
粘贴前先执行如下命令: 再粘贴的时候,里面的内容就不再缩进了,完美解决。

:set paste

六、基本示例

1、编写playbook实现远程主机vsftpd的安装和自启动:

vim ftp.yml

- name: ftp
  hosts: all
  tasks:
    - name: yum
      yum:
        name: vsftpd
        state: present
    - name: replace
      replace:
        path: /etc/vsftpd/vsftpd.conf
        regexp: anonymous_enable=YES
        replace: anonymous_enable=YES
    - name: service
      service:
        name: vsftpd
        state: started
        enabled: yes
    - name: firewalld
      firewalld:
        zone: public
        service: ftp
        state: enabled
        immediate: yes
        permanent: yes

2、编写playbook实现远程主机httpd的安装和自启动,虚拟主机等:

 创建vhosts文件

vim  vhosts.conf
cat vhosts.conf

<VirtualHost _default_:80>
  DocumentRoot "/var/www/html"
  CustomLog logs/default.log combined
</VirtualHost>

<VirtualHost *:80>
  ServerName bbs.westos.org
  DocumentRoot "/var/virtual/westos.org/bbs/html"
  CustomLog logs/bbs.log combined
</VirtualHost>

<VirtualHost *:80>
  ServerName login.westos.org
  DocumentRoot "/var/virtual/westos.org/login/html"
  CustomLog logs/login.log combined
</VirtualHost>

<Directory "/var/virtual">
  Require all granted
</Directory>

vim http.yml

- name: httpd
  hosts: all
  tasks:
    - name: yum
      yum:
        name: httpd
        state: present
    - name: lineinfile
      lineinfile:
        path: /var/www/html/index.html
        line: default
    - name: service
      service:
        name: httpd
        state: started
        enabled: yes
    - name: firewalld
      firewalld:
        zone: public
        service: http
        permanent: yes
        state: enabled
        immediate: yes
    - name: lineinfile
      lineinfile:
        path: /var/virtual/westos.org/bbs/html/index.html
        line: bbs.westos.org
        create: yes
    - name: lineinfile
      lineinfile:
        path: /var/virtual/westos.org/login/html/index.html
        line: login.westos.org
        create: yes
    - name: copy
      copy:
        src: ./vhosts.conf
        dest: /etc/httpd/conf.d
    - name: service
      service:
        name: httpd
        state: restarted
        enabled: yes

在访问主机添加解析

访问:查看是否成功

 

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

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

相关文章

阿里云Apsara云栖大会2023

文章目录 2023/10/312023/11/012023/11/02彩蛋1&#xff1a;神州十六号彩蛋2&#xff1a;emm… 计算&#xff0c;为了无法计算的价值。 2023/10/31 合规性评审 2023/11/01 暂未开始 2023/11/02 暂未开始 彩蛋1&#xff1a;神州十六号 彩蛋2&#xff1a;emm…

Linux系统jdkTomcatMySQL安装以及J2EE后端接口部署

目录 一、jdk&Tomcat安装 1.1 上传安装包到服务器 1.2 解压对应工具包 1.3 配置环境变量并测试jdk安装 1.4 启动tomcat 1.5 防火墙设置 1.5.1 开启/关闭防火墙以及防火墙状态查看 1.5.2 开放防火墙端口 二、MySQL安装 2.1 卸载mariadb 2.2 在线下载MySQL安装包(…

全方位 Linux 性能调优经验总结

Part1Linux性能优化 1性能优化 性能指标 高并发和响应快对应着性能优化的两个核心指标&#xff1a;吞吐和延时 图片来自: www.ctq6.cn 应用负载角度&#xff1a;直接影响了产品终端的用户体验系统资源角度&#xff1a;资源使用率、饱和度等 性能问题的本质就是系统资源已经…

AI:46-基于深度学习的垃圾邮件识别

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌本专栏包含以下学习方向: 机器学习、深度学…

libpcap获取数据包

一、用户空间 以Linux以及TPACKET_V3为例。 调用pcap_dispatch获取数据包&#xff0c;然后回调用户传递的数据包处理函数。 read_op实际调用的是pcap_read_linux_mmap_v3 // pcap.c int pcap_dispatch(pcap_t *p, int cnt, pcap_handler callback, u_char *user) {return (p-…

2023年【R1快开门式压力容器操作】考试题及R1快开门式压力容器操作模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 R1快开门式压力容器操作考试题是安全生产模拟考试一点通生成的&#xff0c;R1快开门式压力容器操作证模拟考试题库是根据R1快开门式压力容器操作最新版教材汇编出R1快开门式压力容器操作仿真模拟考试。2023年【R1快开…

什么是AUTOSAR ComStack,AUTOSAR架构中,CAN通信堆栈CAN Communication Stack介绍

AUTOSAR&#xff08;Automotive Open System Architecture&#xff09;ComStack指的是AUTOSAR架构中的通信堆栈。在AUTOSAR体系结构中&#xff0c;ComStack是指用于不同软件组件&#xff08;如应用软件、基础软件等&#xff09;之间进行通信的一组协议和服务。 在AUTOSAR架构中…

对于SOCKET套接字问题的若干认识

1. 首先大家应该知道Socket 编程吧 Socket套接字 分为 应用层套接字 数据链路层套接字&#xff08;也就是原始socket&#xff09; 1.流套接字(SOCK_STREAM) 流套接字用于提供面向连接、可靠的数据传输服务。该服务将保证数据能够实现无差错、无重复送&#xff0c;并按顺序接…

精通Nginx(02)-Nginx安装

本文主要讲述Nginx在Linux下的yum安装方式。 Yum安装一般用root模式。 安装方式 在Linux下&#xff0c;Nginx安装有源码编译安装和yum(不同OS可能命令名字不一样)直接安装两种方式。两种方式优缺点如下&#xff1a; 源码编译安装 优点&#xff1a;灵活性高定制性强&#xff…

【Spring MVC】传递参数

前言&#xff1a; 访问不同路径就是在发送不同的请求&#xff0c;在发送请求时&#xff0c;可能会带有一些参数&#xff0c;所以Spring的请求主要是为了学习如何传递参数到后端以及后端如何接收。 在SpringMVC中使用RequestMapping来实现路由映射&#xff0c;也就是浏览器连接…

5G物联网关相较有线网关有哪些独特优势

5G为产业物联网应用带来了质的飞跃&#xff0c;5G技术实现更高速率、更低延迟和更大带宽&#xff0c;使得物联网能够接入更多数量的设备&#xff0c;实现更稳定、高效的连接和数据传输&#xff0c;在提高生产效率的同时&#xff0c;也进一步促进了物联网的应用发展和升级。 针对…

预约上门洗衣店洗鞋店管理软件;

洗衣店洗鞋店管理软件&#xff1b; 软件操作简单&#xff0c;专业管理进货、库存、销售、会员、利润统计和导购员提成。前台扫描销售和会员打折&#xff0c;会员充值消费&#xff0c;支持扫码支付&#xff0c;结账自动打印小票。手机可以查询库存和营业情况&#xff01; 干洗店…

PHP连接SQLServer echo输出中文汉字显示乱码解决方法

1、查询结果有中文会显示乱码。 解决方法一&#xff08;较简单&#xff0c;建议使用&#xff09;&#xff1a; 在php文件最开头写上&#xff1a; header(Content-type: text/html; charsetUTF8); // UTF8不行改成GBK试试&#xff0c;与你保存的格式匹配 <?php header(&q…

RecyclerView自定义LayoutManager从0到1实践

此前大部分涉及到 RecyclerView 页面的 LayoutManager基本上用系统提供的 LinearLayoutManager 、GridLayoutManager 就能解决&#xff0c;但在一些特殊场景上还是需要我们自定义 LayoutManager。之前基本上没有自己写过&#xff0c;在网上看各种源码各种文章&#xff0c;刚开始…

[MySQL]索引

目录 概念解释 作用/优点 缺点 适用场景 索引的创建,删除与查看 系统对索引的自动创建 索引建立的时机 索引存储的数据结构 选择B树的原因 B树的原理 查询流程 优点 B树 与B树的区别 优点 概念解释 索引就像是一本字典的目录,我们可以根据目录快速定位到我们想…

Java架构师前沿技术

目录 1 导学2 信息物理系统2.1CPS的体系架构2.2 CPS的技术体系3 人工智能4 机器人5 边缘计算6 数字李生体7 云计算7.1 云计算的部署模式8 大数据想学习架构师构建流程请跳转:Java架构师系统架构设计 1 导学 2 信息物理系统 信息物理系统(CPS)是控制系统、嵌入式系统的扩展与…

一张图讲清楚业务稳定性要如何做:SRE体系化稳定性方案

概述&#xff1a;作为一个SRE、运维工程师&#xff0c;当我们在治理系统稳定性时&#xff0c;方法有很多&#xff0c;但往往无从下手。本文以一张逻辑图的形式&#xff0c;为读者提供治理稳定性的体系化思路。 先上图&#xff1a; 1、治理目标 我们做稳定性的目标&#xff0c…

MySQL 基础学习笔记(二)

目录 1 约束1.1 约束概述1.2 非空约束1.3 唯一约束1.4 主键约束1.5 默认约束1.6 外键约束 2 数据库设计2.1 数据库设计概述2.2 表关系 3 多表查询3.1 多表查询概述3.2 内连接查询3.3 外连接查询3.4 子查询 4 事务4.1 事务概述4.2 四大特征 1 约束 1.1 约束概述 约束是作用于表…

Whatsapp企业号如何增粉?5个措施帮到你

收集粉丝关注的方法有很多种&#xff0c;本文将会介绍九种有效的方式&#xff0c;可以参考。 在传播信息的过程中&#xff0c;我们要需要把客户放在第一位&#xff0c;你能提供给客户什么&#xff0c;实用价值或情绪价格。给人的感觉真实吗&#xff1f;足够透明吗&#xff1f;…

[黑马程序员Pandas教程]——Pandas快速体验

目录&#xff1a; 为什么要使用Python做数据开发Python在数据开发领域的优势为什么要学习Pandas其他常用Python库介绍主要内容介绍Anaconda安装Anaconda的虚拟环境管理虚拟环境的作用可以通过Anaconda界面创建虚拟环境通过命令行创建虚拟环境通过Anaconda管理界面安装包也可以…