使用VS Code编写Ansible Playbook可显著提升效率,得益于其扩展支持;2. 安装Red Hat Ansible、YAML by Red Hat等扩展可实现语法高亮、自动补全和代码片段;3. 配置yaml.schemas关联Ansible官方schema,实现结构校验与智能提示;4. 编写Playbook时可实时获得参数错误提醒;5. 通过Vagrant搭建本地环境并在内置终端运行ansible-playbook命令测试;6. 结合Git实现版本控制,形成完整开发流程。

使用 VS Code 编写和测试 Ansible Playbook 能显著提升效率,得益于其丰富的扩展生态和集成开发环境。通过合理配置,你可以获得语法高亮、自动补全、YAML 验证、代码片段以及本地执行测试的能力。
安装必要扩展
在 VS Code 中编写 Ansible Playbook 前,建议安装以下扩展以增强开发体验:
- Red Hat Ansible:提供对 Ansible 和 YAML 的语言支持,包括语法高亮、自动补全、文档提示等。
- YAML by Red Hat:增强 YAML 文件的编辑功能,支持 schema 校验、折叠、格式化等。
- Ansible Snippets:提供常用 Ansible 模块和任务的代码片段,加快编写速度。
- Prettier 或 YAML Formatter:用于统一 YAML 格式,保持 Playbook 整洁。
安装方法:打开 VS Code,进入扩展市场(Ctrl+Shift+X),搜索上述名称并点击安装。
配置 YAML Schema 支持
为了让 VS Code 正确识别 Ansible Playbook 的结构并提供智能提示,需要配置 YAML schema 映射。
在 VS Code 设置中(Settings → Preferences → Settings),搜索 yaml.schemas,添加如下配置:
{
"yaml.schemas": {
"https://raw.githubusercontent.com/ansible/schemas/main/f/ansible-stable-2.14.json": [
"**/playbooks/*.yml",
"**/roles/**/*.yml",
"**/*.ansible.yml"
]
}
}该配置将指定路径下的 YAML 文件与 Ansible 官方 schema 关联,实现参数校验和自动补全。
编写第一个 Playbook
创建一个名为 webserver.yml 的文件,输入以下内容作为示例:
家电公司网站源码是一个以米拓为核心进行开发的家电商城网站模板,程序采用metinfo5.3.9 UTF8进行编码,软件包含完整栏目与数据。安装方法:解压上传到空间,访问域名进行安装,安装好后,到后台-安全与效率-数据备份还原,恢复好数据后到设置-基本信息和外观-电脑把网站名称什么的改为自己的即可。默认后台账号:admin 密码:132456注意:如本地测试中127.0.0.1无法正常使用,请换成l
---
- name: 配置 Web 服务器
hosts: webservers
become: yes
tasks:
- name: 安装 Apache
ansible.builtin.yum:
name: httpd
state: present
- name: 启动并启用 Apache 服务
ansible.builtin.systemd:
name: httpd
state: started
enabled: true
输入过程中,你会看到模块参数的提示和错误检查。例如,如果拼错 state 为 stat,编辑器会标红提醒。
本地测试 Playbook
要测试 Playbook,需确保本地或目标主机已配置 Ansible 环境。可使用 Vagrant + VirtualBox 搭建本地测试环境。
基本测试流程如下:
- 启动一台本地虚拟机并加入
/etc/ansible/hosts,例如命名为 webservers。
- 在 VS Code 内置终端(Ctrl+`)中运行:
ansible-playbook webserver.yml -i /path/to/inventory
- 观察输出结果,确认任务执行成功。
- 若出错,根据提示修改 Playbook 并重新运行。
也可在 .vscode/settings.json 中配置任务(tasks.json),实现一键运行 Playbook。
基本上就这些。配合 Git 版本控制,VS Code 就成了一个轻量但强大的 Ansible 开发环境。不复杂但容易忽略的是 schema 配置和本地 inventory 的准确性,这两点设好后,编写体验会明显提升。









