前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ansible变量进阶

Ansible变量进阶

作者头像
Yuou
发布2022-09-26 15:46:14
2720
发布2022-09-26 15:46:14
举报

1.0 Ansible怎么定义变量

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

1.0.1 通过Playbook中的vars定义变量

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

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

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

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

代码语言:javascript
复制
- 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

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

  • 这种方法一般用的很少
代码语言:javascript
复制
[test]
10.1.6.205
[test:vars]
file_name=group_sys

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

group_vars
代码语言:javascript
复制
mkdir host_vars; mkdir group_vars

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

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

代码语言:javascript
复制
[root@bogon ~]# cat group_vars/test 
file_name: group_sys
host_vars
  • host_vars中创建一个文件,文件名与inventory清单中的主机名称要保持完全一致,如果是IP地址,则创建相同IP地址的文件即可
代码语言:javascript
复制
vim host_vars/10.1.6.205
[root@bogon ~]# cat host_vars/10.1.6.205 
file_name: group_sys
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.0 Ansible怎么定义变量
    • 1.0.1 通过Playbook中的vars定义变量
      • 1.0.2 通过定义变量文件进行使用
        • 1.0.3 通过编辑inventory主机清单进定义
          • group_vars
          • host_vars
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档