注意点
1.缩进问题
- 空格不对
- 段横杆后面没空格
- :后面没空格
2.单词拼错了
3.乱用参数
- mode: ‘0600’
- group: www
4.配置文件写错了
- rsync /backup
- nfs
- lsyncd /backup /data
5.模拟测试的坑
- -C 不成功不代表实际运行不成功
6.报错的坑
- 实际报错的行数不一定是真的,找一找附近,上面和下面
7.网络的坑
- YUM卡住,检查客户端机器是否能上网
不方便的地方
1.调试的时候所有步骤都得重新执行一遍
2.服务状态不改变
3.配文文件和剧本存放混乱
4.剧本都是分开的,需要分开执行
-注册变量
[root@m01 ~/yaml]# cat vars_ip.yml
- hosts: zabbix
tasks:-
name: 01-get ip address
shell: “echo { { ansible_facts.eth1.ipv4.address }} > /root/ip_eth1.txt” -
name: 02-get hostname
shell: “cat /root/ip_eth1.txt”
register: cat_ip -
name: 02-out cat status
debug:
msg: “{ { cat_ip.stdout }}”
-
ansible服务管理
目前的情况:
- 要不然不重启,要不然每次都重启
理想中的情况:
- 配置文件发生了变化就重启,没变化就不重启,第一次安装直接启动
命令实现:
…
copy: src=/server/scripts/exports dest=/etc/
notify:
- restart nfs
…
handlers:
- name: restart nfs
service:
name: nfs
state: restarted
…
注意点:
1.重启多个服务,不用写2个handles,直接在handles下面写上name就可以了
2.缩进有问题
3.每次都重启,因为使用了-C,配置文件并没与真正的发过去
4.每次推送服务都会启动,配置文件一样也会启动,因为服务配置错误,根本就没正常启动
不完美的地方:
1.不能同时监控多个文件,分别重启多个服务
2.需要分开写多个copy和多个restart
循环
1.应用场景
- 安装多个软件
- 创建多个目录
- 复制多个文件
- 复制多个文件到不同的目录
- 不同的文件权限不一样
2.具体实现
单行模式:
- name: 04-copy rsyncd conf
copy: src=/server/scripts/rsyncd.conf dest=/etc/ - name: 05-copy passwd
copy: src=/server/scripts/rsync.passwd dest=/etc/
缩进模式:
-
name: 04-copy rsyncd conf
copy:
src: /server/scripts/rsyncd.conf
dest: /etc/ -
name: 05-copy passwd
copy:
src: /server/scripts/rsync.passwd
dest: /etc/
mode: 600
循环模式1: