ansible使用剧本部署nfs服务
2020-05-24 本文已影响0人
南南宫问天
剧本的编写方法
image.png剧本的语法规范:
1)空格规范: 实现缩进功能
2)冒号规范: 实现键值定义
3)横线规范: 实现列表现实
剧本的作用: 可以一键化完成多个任务
剧本的组成部分
演员信息: 男一号 hosts
干的事情: 吻戏 tasks
演员信息: 男二号
干的事情: 看着
剧本编写规范: yaml ---三点要求
1.合理的缩进 ----两个空格表示一个缩进关系
标题一
标题二
标题三
补充: 在ansible中一定不能用tab进行缩进
2.冒号的使用方法
hosts: 172.16.210.53
tasks:
yum name=xx
补充: 使用冒号时后面要有空格信息
以冒号结尾,冒号信息出现在注释说明,后面不需要加上空格
3.剧本编写常见错误:
01. 剧本语法规范是否符合(空格 冒号 短横线)
02. 剧本中模块使用是否正确
03. 剧本中一个name标识下面只能写一个模块任务信息
04. 剧本中尽量不要大量使用shell模块
4.短横线应用 -(列表功能)
- 张三
男
- 打游戏
- 运动
- 李四
女
学习
湖南
- 王五
男
运动
深圳
补充: 使用短横线构成列表信息,短横线后面需要有空格
开始编写剧本:
剧本文件扩展名尽量为yaml
1.方便识别文件是一个剧本文件
2.文件编写时会有颜色提示
部署nfs服务
1.创建几个目录,提前写好配置文件
[root@ansible ~]# cd -
/etc/ansible/ansible-playbook
[root@ansible ansible-playbook]# mkdir nfs-file
[root@ansible ansible-playbook]# mkdir nfs-file/nfs-{client,server}
[root@ansible ansible-playbook]# cd nfs-file/nfs-server/
[root@ansible nfs-server]# echo "/data 172.16.210.0/24(rw,sync)" > exports
2.在主机清单填写要部署的主机
[nfs:children]
nfs_server
nfs_client
[nfs_server]
172.16.210.53
[nfs_client]
172.16.210.54
172.16.210.55
3.编写剧本
[root@ansible ansible-playbook]# cat nfs-server.yaml
- hosts: nfs
tasks:
- name: 01-install nfs software
yum:
name: ['nfs-utils','rpcbind']
state: installed
- hosts: nfs_server
vars:
data_dir: /data
tasks:
- name: 01-copy conf file
copy: src=/etc/ansible/ansible-playbook/nfs-file/nfs-server/exports dest=/etc
notify: restart nfs server
- name: 02-create data dir
file: path={{ data_dir }} state=directory owner=nfsnobody group=nfsnobody
- name: 03-start sever
#service: name=rpcbinf state=started enabled=yes
#service: name=nfs state=started enabled=yes
service: name={{ item }} state=started enabled=yes
with_items:
- rpcbind
- nfs
handlers:
- name: restart nfs server
service: name=nfs state=restarted
- hosts: nfs_client
vars:
data_dir: /data
tasks:
- name: 01-mount
mount: src=172.16.210.53:{{ data_dir }} path=/mnt fstype=nfs state=mounted
- name: 02-check mount info
shell: df -h | grep /data
register: mount_info
- name: display mount info
debug: msg={{ mount_info.stdout_lines }}
4.执行剧本
[root@ansible ansible-playbook]# ansible-playbook nfs-server.yaml
PLAY [nfs] *********************************************************************
TASK [01-install nfs software] *************************************************
ok: [172.16.210.55]
ok: [172.16.210.53]
ok: [172.16.210.54]
PLAY [nfs_server] **************************************************************
TASK [01-copy conf file] *******************************************************
ok: [172.16.210.53]
TASK [02-create data dir] ******************************************************
changed: [172.16.210.53]
TASK [03-start sever] **********************************************************
ok: [172.16.210.53] => (item=rpcbind)
ok: [172.16.210.53] => (item=nfs)
PLAY [nfs_client] **************************************************************
TASK [01-mount] ****************************************************************
ok: [172.16.210.55]
changed: [172.16.210.54]
TASK [02-check mount info] *****************************************************
changed: [172.16.210.55]
changed: [172.16.210.54]
TASK [display mount info] ******************************************************
ok: [172.16.210.54] => {
"msg": [
"172.16.210.53:/data 36G 1.6G 34G 5% /mnt"
]
}
ok: [172.16.210.55] => {
"msg": [
"172.16.210.53:/data 36G 1.6G 34G 5% /mnt"
]
}
PLAY RECAP *********************************************************************
172.16.210.53 : ok=4 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
172.16.210.54 : ok=4 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
172.16.210.55 : ok=4 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
5.查看客户端是否成功挂载
[root@web02 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 36G 1.7G 34G 5% /
devtmpfs 2.4G 0 2.4G 0% /dev
tmpfs 2.4G 0 2.4G 0% /dev/shm
tmpfs 2.4G 8.6M 2.4G 1% /run
tmpfs 2.4G 0 2.4G 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
tmpfs 480M 0 480M 0% /run/user/0
172.16.210.53:/data 36G 1.6G 34G 5% /mnt
[root@web03 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 36G 1.7G 34G 5% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 8.6M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
172.16.210.53:/data 36G 1.6G 34G 5% /mnt
tmpfs 380M 0 380M 0% /run/user/0