第十周-day44--playbook剧本-变量与循环使用
程序员文章站
2022-03-09 14:20:49
...
asnible的变量
一、实现变量调用的方法:
1.在nfs01 backup 创建/backup/lidao的目录 ,把 /etc/目录打包压缩到/backup/lidao目录下面 etc.tar.gz ,目录名存放在变量中
[09:55 aaa@qq.com /etc/ansible]# vim vars.yml
---
- hosts: all
vars:
dir1: /backup/lidao
tasks:
- name: mkdir
file:
path: "{{ dir1 }}"
state: directory
- name: tar /etc
archive:
path: /etc
dest: "{{ dir1 }}/etc.tar.gz"
二、变量注册
1.注册变量信息
[11:31 aaa@qq.com /etc/ansible]# vim vars1.yml
---
- hosts: all
tasks:
- name: ip
shell: hostname -I|awk '{print $NF}'
register: ipaddr
- name: print ip
shell: echo {{ ipaddr.stdout }} >>/tmp/ip.txt
2.追加到文件中
3.查看追加过去的内容:
最后的一行是stdout_lines: [u172.16.1.31] 是我们要的内容
4.ansible的调试
需要用到叫register的内容
把/etc/打包备份到/backup/ip地址命名目录/etc-时间.tar.gz
(因为时间关系这里就打包/etc下的profile和hosts了)
ip是每台机器的内网ip
时间是当天的日期:年-月-日
[12:10 aaa@qq.com /etc/ansible]# vim vars.yml
---
- hosts: all
tasks:
- name: ip
shell: hostname -I|awk '{print $NF}'
register: ipaddr
- name: date
shell: date +%F
register: time
- name: mkdir dir
file:
path: /backup/{{ ipaddr.stdout }}
state: directory
- name: tar /etc/profie && /etc/hosts
archive:
path: /etc
dest: /backup/{{ ipaddr.stdout }}/etc-{{ time.stdout }}.tar.gz
- name: mkdir xf-dir
file:
path: /backup/{{ ipaddr.stdout }}/tc-{{ time.stdout }}
state: directory
- name: tar xf
unarchive:
src: /backup/{{ ipaddr.stdout }}/etc-{{ time.stdout }}.tar.gz
copy: no
dest: /backup/{{ ipaddr.stdout }}/
三、内置变量
查看主机名:
[12:35 aaa@qq.com /etc/ansible]# vim vars2.yml
---
- hosts: all
tasks:
- name: 内置变量
debug: msg={{ ansible_hostname }}
四、查看所有内置变量
用ansible_facts 内容太多可以筛选
[12:35 aaa@qq.com /etc/ansible]# vim vars2.yml
---
- hosts: all
tasks:
- name: 内置变量
debug: msg={{ ansible_facts }}
1.ansible的循环
2.标准循环批量安装软件
3.标准循环批量创建用户
作业:
shell的面试题
m01使用ansible
部署
rsync
nfs
sersync
全网备份
尝试云服务器部署服务
预习:HTTP协议 Nginx
未完待续…
上一篇: 超有趣的几个Linux小命令
下一篇: 第十周