Ansible Playbook概览
Ansible playbook 执行需要三步路执行:
1.编写playbook
2.定义主机清单文件
3.设置运行环境,写入配置文件
1.编写playbook
Playbook使用YAML语法格式进行编写,这种格式的特点是使用空格缩进来体现语法,,虽然对空格数量没有严格的要求,不过
有几个基本规则要遵守:
- 处于层次结构中同一级别的数据元素必须具有相同的缩进量
- 如果项目属于项目的子项,其缩进量必须大于父项
- 也可以通过添加空行来提高可读性(非强制)
- 只有空格字符可用于缩进,不允许使用制表符
在 $HOME/.vimrc 文件中添加下面这行后,如果 vim 检测到您在编辑 YAML文件,它将在 Tab 键按下时执行一个双空格缩进,自动缩进后续行并
且将制表符展开成空格
autocmd FileType yaml setlocal ai ts=2 sw=2 et # sh 结尾 拓展脚本知识 autocmd BufNewFile *.sh exec ":call SetTitle()" func SetTitle() if expand("%:e") =='sh' call setline(1,"#!/bin/bash") call setline(2,"#") call setline(3,"###################################################") call setline(4,"#Author: Xiong") call setline(5,"#DATE: ".strftime("%Y-%m-%d")) call setline(6,"#Liscense: GPL") call setline(7,"#Version: V0.1") call setline(8,"#Copyright(c): ".strftime("%Y")." All rights reserved") call setline(9,"###################################################") cal setline(10,"") endif endfunc
Playbook由多个play组成,一个play有相关联的一系列任务组成,任务有task关键词定义,task中要执行的任务通过调用各种模
块来完成,示例:
--- - name: Install file # playbook名字 hosts: workstations # 待执行的主机或主机组名 vars: content: "Hello world!" tasks: - name: "Copy File to other workstations" copy: # 任务所需要使用的模块 title: "{ content }" dest: /tmp/sample.txt - name: Hello # 第二个playbook 名字 hosts: OSE roles: - hello # 角色名
2.定义主机清单文件
清单文件是个文本文件,用于定义要被控制的主机,最后可以在playbook引用这个文件,以控制一批指定的主机受控主机,可以写ip地址,可以写主机名,也可以进行分组。示例
[workstation] workstation.com [nfs] services.com [master] master.com [node] node.com [etcd] etcd.com [K8S] master etcd node nfs
3. 设定运行环境
在前两步完成后,设置ansible运行环境,定义相关配置文件,示例:
[defaults] remote_user = admin inventory = /ansible/playbook/inventory # 定义主机清单文件目录地址 roles_path= /home/admin/roles log_path=/ansible/playbook/ansible.log [privileg] # 定义在主机上执行特权的操作 become = yes become_user = root become_method= sudo
至此,前三步完成,可以执行ansible-playbook
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏