一. Playbook框架和格式
1. Playbook目录结构
在这里我命名一个叫Test Playbooks的示例
这是playbook的表层目录结构
inventory
--testenv
roles
--testbox
----tasks
------main.yml
deploy.yml
其中inventory用来保存一台或者多台的Server的详细清单,如有IP,主机名,以及相关参数
testenv是存放具体清单与变量声明文件
roles存放任务列表
testbox作为项目名称,保存详细任务
main.yml是作为testbox主任务的文件
deploy.yml 是Playbook任务入口文件
2. 详细目录testenv
该文件目标部署服务器的一些参数
[testservers] // Server组列表
192.168.220.126 // 目标部署服务器主机名, 这个是我使用虚拟机创建的服务器地址
[testservers:vars] // Server组列表参数
server_name=192.168.220.126 // 目标主机Key/value参数
user=root
output=/root/test.txt
3. 主任务文件main.yml
- name: Print server name and user to remote testbox // 任务名称
shell: "echo 'Currently {{ user }} is logining {{ server_name }}' > {{ output }}" // 使用shell模块执行命令
4. 任务入口文件deploy.yml
- hosts: "testservers" // Server列表
gather_facts: true // 获取Server基本信息
remote_user: root // 目标服务器系统用户指定
reles: // 进入reles/testbox 任务目录
- testbox
二. 执行Playbooks
1. 部署到testenv环境
# ansible-playbook -i inventory/testenv ./deploy.yml
部署成功