playbook是剧本的意思,一般一个剧本写一个play.
playbook yaml语法是换行空两格,-和:后必须空一格
hosts:是你的节点的名字
tasks:是你的任务
gather_facts收集主机信息,no则不收集主机的信息
ansible的copy模块
copy 模块是可以进行文件夹与文件的拷贝,具体使用如下:
copy src=/root/nginx.sh dest=/tmp/
copy src=/root/monitor dest=/root
注:你的dest必须是绝对路径。
当然你也可以使用shell scp的命令但是ansible不推荐使用
file 模块:
file: dest=/root/r_{{datetime.stdout}} state=touch
变量传参: -e参数
ansible-playbook test.yml -e work_dir=“wysmart”
- name: register var #人物名字
command: date +"%F_%T" #在linux下的命令,
register: datetime #注册变量
小功能将所有客户机需要的文件拷贝到客户机上去。
拷贝文件夹,到所有client端
---
- hosts: app
gather_facts: no
remote_user: root
vars:
- worker_dir: "/usr/local"
#tasks任务
tasks:
- name: register var
command: date +"%F_%T"
register: datetime
- name: test create
#debug: msg="{{work_dir}}"
# shell: mkdir "/root/{{work_dir}}"
file: dest=/root/r_{{datetime.stdout}} state=touch
- name: copy file
copy: src=/root/monitor dest=/root/wysmart owner=root group=root
ansible app -m setup
打印系统变量
handler:句柄后续待写 notify