美文网首页
44--playbook剧本-变量与循环使用

44--playbook剧本-变量与循环使用

作者: 杨丶子 | 来源:发表于2019-06-05 08:35 被阅读0次

asnible的变量

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

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

image
[09:55 root@m01 /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"

image image

二、变量注册

1.注册变量信息

[11:31 root@m01 /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.追加到文件中

image

3.查看追加过去的内容:

最后的一行是stdout_lines: [u172.16.1.31] 是我们要的内容

image

4.ansible的调试

需要用到叫register的内容
把/etc/打包备份到/backup/ip地址命名目录/etc-时间.tar.gz
(因为时间关系这里就打包/etc下的profile和hosts了)
ip是每台机器的内网ip
时间是当天的日期:年-月-日

image
[12:10 root@m01 /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 }}/

三、内置变量

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

四、查看所有内置变量

用ansible_facts 内容太多可以筛选

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

1.ansible的循环

image

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

image

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

image

相关文章

  • 44--playbook剧本-变量与循环使用

    asnible的变量 一、实现变量调用的方法: 1.在nfs01 backup 创建/backup/lidao的目...

  • week12-ansible 剧本编写扩展说明

    1. 剧本编写设置变量 2. 剧本编写注册信息 3. 剧本编写循环功能 4. 剧本编写判断功能 5. 剧本编写忽略...

  • 批处理学习

    变量延迟 使用情况:当在复合命令(例如循环语句)中使用变量时,需要使用变量延迟。 for循环 参数列表:-/D:列...

  • Scala学习

    第一周 Scala基础 值与变量的声明 常用类型简介 函数与方法的定义与使用 条件表达式 循环及高级for循环使用...

  • Java 线程的停止

    使用退出标志位来终止线程 使用一个变量来控制循环,每次循环时都判断该变量的值 使用 interrupt 方法停止 ...

  • shell-8 for

    for 语法一 for语法二C式的for命令 for循环使用多个变量 for 无限循环 使用((;;)) 条件可以...

  • C语言——第二次笔记

    学习内容全局变量与局部变量switch语句for循环while循环Break与Continue关键字printf与...

  • C语言相关使用

    学习内容全局变量与局部变量switch语句for循环while循环Break与Continue关键字printf与...

  • bat 命令

    :: 使用延迟变量,这样for in 循环里面才能设置变量,并且用!变量!来调用变量:: 否则for in 里面的...

  • 2019-08-27 ansible剧本

    剧本编写扩展功能 1.剧本变量的设置2.剧本变量注册功能register注册变量 3.剧本编写判断功能 4.剧本编...

网友评论

      本文标题:44--playbook剧本-变量与循环使用

      本文链接:https://www.haomeiwen.com/subject/ewtjxctx.html