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

免费个人网站域名注册建设机械网站方案

免费个人网站域名注册,建设机械网站方案,课程培训网站模板下载,wordpress支付通道Ansible Playbook 实践一、Playbook 基础规范(一)YAML 格式要求文件标识:以 --- 开头,明确为 YAML 文件,结尾可加 ...(可选,用于标记文件结束)。注释规则:用 # 实现注释&…

Ansible Playbook 实践

一、Playbook 基础规范

(一)YAML 格式要求

  • 文件标识:以 --- 开头,明确为 YAML 文件,结尾可加 ...(可选,用于标记文件结束)。
  • 注释规则:用 # 实现注释,可注释整行(如 # 安装 httpd 服务)或行内内容(如 name: httpd # 服务名),注释内容不会被 Ansible 解析。
  • 字符串与布尔值
    • 字符串:一般无需引号,但若包含特殊字符(如空格、:、{})或引用变量(如 "{{ ansible_hostname }}"),需用双引号包裹。
    • 布尔值:在模块参数中,支持 yes/on/1/true(表示 “是”)和 no/off/0/false(表示 “否”),Ansible 会自动解析为布尔类型。
  • 缩进规则:严格使用空格缩进(不支持 Tab),同一层级缩进量一致(推荐 2 个或 4 个空格),缩进错误会导致 Playbook 执行失败。

(二)Playbook 结构

每个 Play 包含 hosts(定义目标主机 / 组 )和 tasks(任务列表,按序执行 ),所有匹配 hosts 的主机都会收到任务指令,Ansible 筛选执行。

详细的字段:

字段​

作用​

示例​

name​

为 Play 命名,便于识别任务用途(非必填,但推荐添加,执行时会显示)​

name: 部署 httpd 服务​

hosts​

定义目标主机 / 主机组(从 Inventory 中匹配),支持多组(用逗号分隔)​

hosts: test01,web​

become​

是否切换为特权用户(如 root),默认 no,需提权时设为 yes​

become_user​

指定提权后的目标用户(默认 root),可按需改为其他特权用户​

tasks​

任务列表,按顺序执行,每个任务调用一个 Ansible 模块​

见下文实操场景示例​

vars​

定义当前 Play 的变量(局部变量,仅在当前 Play 生效)​

vars_files​

引入外部变量文件(如 YAML/JSON 格式),适合变量较多的场景​

handlers​

触发式任务(仅在被 notify 调用时执行),常用于服务重启、配置重载​

见下文 “Handlers 组件” 示例​

templates​

引入 Jinja2 模板文件,用于动态生成配置文件(如根据主机名生成不同配置)​

二、Playbook 执行与验证

  • 测试执行:用 ansible-playbook -C 剧本名.yml 测试,不实际执行任务 。
  • 实际执行:ansible-playbook 剧本名.yml ,执行后按需用命令(如 curl、df -Th 等 )验证结果 。

三、Playbook 实操场景

主机清单:
node1 属于 test01 主机组
node2 属于 test02 主机组
node3 和 node4 属于 web 主机组
node5 属于 test05 主机组
web 组属于 webtest 主机组

(一)Node1 部署 httpd 服务(httpd.yml)

任务说明:依次安装 httpd、创建 /www 链接、写入网页内容、重启服务并设自启、配置防火墙允许 http 访问 ,实现 curl http://node1 访问到指定内容。

cat httpd.yml---- name: wedhosts: node1tasks:- name: install httpdyum:name: httpdstate: present- name: create linkfile:src: /var/www/htmldest: /wwwstate: link- name: file indexcopy:content: "welcome to luoqi\n"dest: /var/www/html/index.htmlsetype: httpd_sys_content_t- name: restart httpdservice:name: httpdstate: restartedenabled: yes- name: httpd firewalldfirewalld:service: httppermanent: yesstate: enabledimmediate: yes

结果展示:

(二)Node2 分区与挂载(parted.yml)

任务说明:先创建 1000MiB 主分区,格式化为 ext4,建挂载点 /testdir 并挂载分区,用 ansible node2 -m shell -a 'df -Th' 验证挂载。

cat parted.yml---- name: cipanfenquhosts: node2tasks:- name: create partedparted:device: /dev/vdbnumber: 1part_type: primarypart_start: 10MiBpart_end: 1010MiBstate: present- name: filesystem partedfilesystem:dev: /dev/vdb1fstype: ext4- name: mount filefile:path: /testdirstate: directory- name: mount partedmount:path: /testdirsrc: /dev/vdb1fstype: ext4state: mounted

结果展示:

(三)Node3 LVM 配置与挂载(lv.yml)

任务说明:创建分区,装 LVM 工具,建卷组 datastorage、逻辑卷 database,格式化为 xfs 后挂载到 /lv,用 ansible node3 -m shell -a 'df -Th' 验证 。

cat lv.yml---- name: lvhosts: node3tasks:- name: create /dev/vdb1parted:device: /dev/vdbnumber: 1part_type: primarypart_start: 10MiBpart_end: 2010MiBstate: present- name: install lvm2yum:name: lvm2state: present- name: create datastoragelvg:vg: datastoragepvs: /dev/vdb1- name: create databaselvol:lv: databasesize: 800Mvg: datastorage- name: lv filesystemfilesystem:dev: /dev/datastorage/databasefstype: xfs- name: mount filefile:path: /lvstate: directory- name: mountmount:path: /lvsrc: /dev/datastorage/databasefstype: xfsstate: mounted

结果展示:

(四)多组软件包管理(tools.yml)

任务说明:分 Play 实现,先给 test01、test02、web 组装 php 和 tftp;

再给 test01 组装 RPM Development Tools 组;

最后升级 test01 组所有包到最新 。

cat tools.yml---- name: yum installhosts:- test01- test02- webtasks:- name: install php and tftpyum:name:- php- tftpstate: present- name: yum install grouphosts: test01tasks:- name: install groupyum:name: "@RPM Development Tools"state: present- name: yum latesthosts: test01tasks:- name: latestyum:name: '*'state: latest

(五)计划任务配置(jihua.yml)

任务说明:在 test02 组主机,为 student 用户设每 5 分钟执行 echo "hello tarena" 的计划任务 。

cat jihua.yml---- name: jihuahosts: test02tasks:- name: cron studentcron:name: aauser: studentminute: '*/5'job: echo "hello tarena"state: present

结果展示:

(六)Web 开发环境配置(webdev.yml)

任务说明:在 test01 组主机,建 webdev 组和 /webdev 目录(权限 2775 含 SetGID ),创建符号链接,写入网页文件,实现 http://node1/webdev/ 访问显示指定内容 。

cat webdev.yml---- name: webdevhosts: test01tasks:- name: create groupuser:name: webdevstate: present- name: mkdirfile:path: /webdevgroup: webdevmode: '2775'state: directory- name: linkfile:src: /webdevdest: /var/www/html/webdevstate: link- name: create filecopy:content: "It's works!\n"dest: /webdev/index.htmlsetype: httpd_sys_content_t

结果展示:

    http://www.dtcms.com/a/602414.html

    相关文章:

  • 网站建设网页制作软件河南企业网站定制
  • 做网站设计图用什么软件wordpress多个菜单menu
  • 人工智能训练师证书怎么考?
  • 【RAG核心维度深度解析】评估、安全、可靠性、管理及技术方案权衡
  • 【MCP安全】MCPGuard : Automatically Detecting Vulnerabilities in MCP Servers
  • 有专门做ppt的网站有哪些wordpress评论qq
  • 自己做的网站如何包装wordpress接入微信登录
  • 单位不能建设网站网站怎么做黑链接
  • Java在线编译C语言 | 实时运行与调试工具指南
  • GPU 发展简史:图形处理到通用计算的蜕变
  • 客户要做网站建设话术网站如何提高转化率
  • 外贸平台网站有哪些网站 关键词 怎么改
  • 四、nginx的优化和location匹配规则
  • 厦门快速建网站设计类的网站和简介
  • 珠海集团网站建设外包马克斯网站建设
  • 告别局域网束缚!Excalidraw结合cpolar随时随地画流程图
  • 11.12 脚本APP 网页H5游戏变APP!
  • 长春阿凡达网站建设网站的结构类型
  • AI 生成PPT
  • 网站策划与运营沪指重上3000点
  • 动手学强化学习 第6章 Dyna-Q 算法
  • 【前端】resetFields()失效:点击编辑后再点击新增,弹出的表单是编辑的数据
  • 易支付系统二开对接博瑞云音箱教程及源码
  • TiDB 关联子查询去关联优化实战案例与原理深度解析
  • UCOS-III笔记(四)
  • 广西上林县住房城乡建设网站网站代码字体变大
  • 【窗口】分层角度来整体地理解 Android 窗口系统
  • 网站网页设计制作公司建立wordpress网站吗
  • CesiumJS 案例 P35:添加图片图层(添加图片数据)
  • 贞丰县住房和城乡建设局网站门户网站建设采购