--ansible_role剧本进一步了解
昨天初步学习ansible-playbook剧本,接触到roles模块
今天好好整理了一下思绪,要搞清楚这roles底下的目录到底有什么作用
要明白目录要放什么,就先要明白ansible模块有什么用
今天整理了下昨天的剧本:https://blog.csdn.net/qq_37960324/article/details/82155359
ansible test -m copy -a "src=/service/scripts/change.sh dest=/service/scripts/change.sh owner=root group=root mode=0755"
如果group组不支持,就去掉它即可
在剧本里拷贝文件
ansible test -m copy -a "src=/tmp/test.sh dest=/service/scripts/test.sh mode=0755"
记住,不能用/lalala/ansible/roles/test/template/test.sh这种路径,因为是ansible-playbook剧本占用
ansible test -m shell -a "/service/scripts/test.sh"
shell支持管道命令,用途必command广
ansible test -m shell -a "cat /etc/passwd | wc -l"
ansible test -m yum -a "name=httpd state=installed "
state=installed,默认,不加也可以安装
开启httpd服务,并设为开机启动:
ansible test -m service -a "name=httpd state=started enabled=yes"
主要就是
变量(vars)、文件(file)、任务(tasks)、模块 (modules)及处理器(handlers)
1)创建文件存放目录
2)拷贝文件
3)执行文件(如果有sh脚本的话)
4)安装rpm包或服务
5)启动服务
6)任务回滚
- name: new conf to reload
service: name=zabbix-agent state=restarted
用于copy或script等模块调用的文件,就是用来存储配置文件或安装包什么的
用于templates模块调用的文件,用来存储shell脚本什么的
总调度:tasks/main.yml
- include: mkdir.yml
- include: zhunbei.yml
- include: install.yml
安装所需目录:tasks/mkdir.yml
- name: make dictionary for software
command: mkdir -p /service/tools
- name: make dictionary for scripts
command: mkdir -p /service/scripts
安装前准备文件:vim tasks/zhunbei.yml
- name: copy agent software
copy: src=zabbix-agent-3.4.2-1.el7.x86_64.rpm dest=/service/tools owner=root group=root
- name: copy change.sh
template: src=change.sh dest=/service/scripts owner=root group=root mode=0755
安装:vim tasks/install.yml
- name: install zabbix-agent
command: yum localinstall /service/tools/zabbix-agent-3.4.2-1.el7.x86_64.rpm -y
- name: doing change
shell: /usr/bin/sh /service/scripts/change.sh
- name: start zabbix-agent
service: name=zabbix-agent enabled=true state=started