---
- name: Example Playbook
hosts: your_host_group # 将your_host_group替换为您的目标主机组
become: yes # 以root身份执行任务
tasks:
- name: Copy file from control node to remote host
copy:
src: /path/to/local/file # 本地文件路径
dest: /path/to/remote/location # 远程主机文件路径
owner: user # 目标文件所有者
group: group # 目标文件所属组
mode: 0644 # 目标文件权限
- name: Install package using apt/yum
apt:
name: package_name # 要安装的软件包名称
state: present # 软件包状态(present表示已安装,latest表示最新版本,absent表示已卸载等)
- name: Manage a service
service:
name: service_name # 服务名称
state: started # 服务状态(started表示已启动,restarted表示已重启,stopped表示已停止,reloaded表示已重新加载等)
- name: Generate and copy file using template
template:
src: /path/to/template.j2 # 模板文件路径
dest: /path/to/remote/location # 生成的目标文件路径
owner: user # 目标文件所有者
group: group # 目标文件所属组
mode: 0644 # 目标文件权限
- name: Modify a line in a file
lineinfile:
path: /path/to/file # 目标文件路径
line: 'some_line_to_modify' # 要插入、修改或删除的行内容
state: present # 行的状态(present表示存在,absent表示不存在等)
- name: Execute a shell command
command: echo "Hello, world!" # 要执行的 shell 命令
- name: Debug message
debug:
msg: "This is a debug message" # 调试消息内容
- name: Send HTTP request
uri:
url: https://example.com/api # HTTP请求的URL
method: GET # HTTP请求方法
- name: Manage Docker container
docker_container:
name: container_name # 容器名称
image: image_name # 镜像名称
state: started # 容器状态(started表示已启动,restarted表示已重启,stopped表示已停止等)
- name: Manage database
postgresql_db:
name: database_name # 数据库名称
state: present # 数据库状态(present表示存在,absent表示不存在等)
- name: Clone a Git repository
git:
repo: git://example.com/repo.git # Git仓库的URL
dest: /path/to/clone # 克隆到的本地路径
version: master # 分支或标签名称
- name: Wait for port to be available
wait_for:
host: localhost # 目标主机
port: 8080 # 等待的端口号
state: started # 等待的端口状态(started表示端口开放,stopped表示端口关闭)
- name: Manage cron job
cron:
name: "run_backup_script" # 定时任务名称
minute: "0" # 分钟
hour: "2" # 小时
job: "/path/to/backup_script.sh" # 要执行的脚本路径
playbook写法
最新推荐文章于 2025-05-05 16:07:04 发布