Ansible变量相关内容

主要讲一下ansible当中的几种变量定义方法

Ansible怎么定义变量

  • 通过playbook中的play进行变量的定义
  • 通过inventory主机清单进行变量定义
  • 通过执行playbook的时候增加-e选项进行定义

通过Playbook中的vars定义变量

  • Playbook中通过写入vars语法定义变量
  • 通过{{变量名}}进行引用!
- hosts: test
  remote_user: root
  vars: 
    - httpd_package: httpd
  tasks:
    - name: Install DepencyEnvorment
      yum:
        name: {{httpd_package}}
        state: present
        update_cache: yes

通过定义变量文件进行使用

  • 定义一个名字为public_vars.yaml的变量配置文件
depence: ['openssl-devel','pcre-devel','zlib-devel']

注意: 当你引用了变量文件中的变量,请在读取变量的时候增加双引号""

- hosts: test
  remote_user: root
  vars_files: 
    - ./public_vars.yaml
    - ./public_vars2.yaml # 如果是多个变量的话
  tasks:
    - name: "Install De"
      yum: 
        name: "{{depence}}" # 通过双引号去引入变量内容,不然会报错
        state: present
        update_cache: no

通过编辑inventory主机清单进定义

  • 这种方法一般用的很少
[test]
10.1.6.205
[test:vars]
file_name=group_sys

官方推荐的方法: 在项目目录中创建两个变量目录host_varsgroup_vars

group_vars

mkdir host_vars; mkdir group_vars

创建一个同名文件,用于写入变量内容

必须与hosts清单中的组名保持一致,如果不同名会报错。但是如果你想要多个配置文件使用同一个组中的变量,只需要在group_vars/all新建一个all文件,所有组可用!

[root@bogon ~]# cat group_vars/test 
file_name: group_sys

host_vars

  • host_vars中创建一个文件,文件名与inventory清单中的主机名称要保持完全一致,如果是IP地址,则创建相同IP地址的文件即可
vim host_vars/10.1.6.205
[root@bogon ~]# cat host_vars/10.1.6.205 
file_name: group_sys
Licensed under CC BY-NC-SA 4.0
昵称
邮箱
网址
  • OωO
  • |´・ω・)ノ
  • ヾ(≧∇≦*)ゝ
  • (☆ω☆)
  • (╯‵□′)╯︵┴─┴
  •  ̄﹃ ̄
  • (/ω\)
  • ∠( ᐛ 」∠)_
  • (๑•̀ㅁ•́ฅ)
  • →_→
  • ୧(๑•̀⌄•́๑)૭
  • ٩(ˊᗜˋ*)و
  • (ノ°ο°)ノ
  • (´இ皿இ`)
  • ⌇●﹏●⌇
  • (ฅ´ω`ฅ)
  • (╯°A°)╯︵○○○
  • φ( ̄∇ ̄o)
  • ヾ(´・ ・`。)ノ"
  • ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
  • (ó﹏ò。)
  • Σ(っ °Д °;)っ
  • ( ,,´・ω・)ノ"(´っω・`。)
  • ╮(╯▽╰)╭
  • o(*////▽////*)q
  • >﹏<
  • ( ๑´•ω•) "(ㆆᴗㆆ)
  • 😂
  • 😀
  • 😅
  • 😊
  • 🙂
  • 🙃
  • 😌
  • 😍
  • 😘
  • 😜
  • 😝
  • 😏
  • 😒
  • 🙄
  • 😳
  • 😡
  • 😔
  • 😫
  • 😱
  • 😭
  • 💩
  • 👻
  • 🙌
  • 🖕
  • 👍
  • 👫
  • 👬
  • 👭
  • 🌚
  • 🌝
  • 🙈
  • 💊
  • 😶
  • 🙏
  • 🍦
  • 🍉
  • 😣
  • 颜文字
  • Emoji
  • Bilibili
0 条评论
没有评论