当前位置: 代码迷 >> 综合 >> 第十周-day44--playbook剧本-变量与循环使用
  详细解决方案

第十周-day44--playbook剧本-变量与循环使用

热度:29   发布时间:2023-10-31 11:43:27.0

asnible的变量

一、实现变量调用的方法:

1.在nfs01 backup 创建/backup/lidao的目录 ,把 /etc/目录打包压缩到/backup/lidao目录下面 etc.tar.gz  ,目录名存放在变量中

[09:55 root@m01 /etc/ansible]# vim vars.yml 
---- hosts: allvars:dir1: /backup/lidaotasks:- name: mkdirfile:path: "{
    { dir1 }}"state: directory- name: tar /etcarchive:path: /etcdest: "{
    { dir1 }}/etc.tar.gz"



二、变量注册

1.注册变量信息

[11:31 root@m01 /etc/ansible]# vim vars1.yml 
---- hosts: alltasks:- name: ipshell: hostname -I|awk '{print $NF}'register: ipaddr- name: print ipshell: 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 root@m01 /etc/ansible]# vim vars.yml 
---- hosts: alltasks:- name: ipshell: hostname -I|awk '{print $NF}'register: ipaddr- name: dateshell: date +%Fregister: time- name: mkdir dirfile:path: /backup/{
    {
     ipaddr.stdout }}state: directory- name: tar /etc/profie && /etc/hostsarchive:path: /etcdest: /backup/{
    {
     ipaddr.stdout }}/etc-{
    {
     time.stdout }}.tar.gz- name: mkdir xf-dirfile:path: /backup/{
    {
     ipaddr.stdout }}/tc-{
    {
     time.stdout }}state: directory- name: tar xfunarchive:src: /backup/{
    {
     ipaddr.stdout }}/etc-{
    {
     time.stdout }}.tar.gzcopy: nodest: /backup/{
    {
     ipaddr.stdout }}/

三、内置变量

image.png

查看主机名:
[12:35 root@m01 /etc/ansible]# vim vars2.yml
---- hosts: alltasks:- name: 内置变量debug: msg={
    {
     ansible_hostname }}

四、查看所有内置变量

用ansible_facts 内容太多可以筛选

[12:35 root@m01 /etc/ansible]# vim vars2.yml
---- hosts: alltasks:- name: 内置变量debug: msg={
    {
     ansible_facts }}

1.ansible的循环

2.标准循环批量安装软件

3.标准循环批量创建用户

作业:

shell的面试题
m01使用ansible
部署
rsync
nfs
sersync
全网备份
尝试云服务器部署服务
预习:HTTP协议 Nginx

未完待续…