ansible剧本-变量的引用与定义

ansible剧本-变量的引用与定义

Cloud研习社 Cloud研习社 2023-04-20 08:43 发表于山东
图片图片

教程每周二、四、六更新

图片

ansible_facts中变量的引用:

[root@m01 ansible]# cat facts_test1_hosts.yml
---
- hosts: com
  tasks:
    - name: generate-etc-hosts
      lineinfile:
        path: /data/hosts
        line: "{{ ansible_ens33.ipv4.address }} {{ ansible_hostname }}"
        create: yes 

# 先验证yml文件的语法没有问题,然后再执行。
[root@m01 ansible]# ansible-playbook facts_test1_hosts.yml --syntax-check
[root@m01 ansible]# ansible-playbook facts_test1_hosts.yml

# 到被管理主机上查看效果:
[root@web01 data]# cat hosts
10.0.0.14 web01
当然用户也可以在/etc/ansible/hosts文件中自定义变量,或者在命令行中赋予自定义变量,我们先看通过命令行定义变量并赋值:

通过命令行定义变量并赋值:

# 定义yml文件,创建卸载任务
[root@m01 ansible]# cat define_vars1.yml
---
- hosts: com
  tasks:
    - name: install packages
      yum:
        name: "{{ pkg_name }}"
        state: absent

# 卸载之前的vsftpd软件
[root@m01 ansible]# ansible-playbook -e pkg_name=vsftpd define_vars1.yml

当然我们也可以创建一个在命令行灵活掌握卸载或安装的yml:

[root@m01 ansible]# cat define_vars2.yml
---
- hosts: com
  tasks:
    - name: install packages
      yum:
        name: "{{ pkg_name }}"
        state: "{{ my_action }}"      # 注意:action是ansible系统保留关键字,不能直接用action

# 通过my_action来指定是安装还是卸载还是更新到最新版本。
[root@m01 ansible]# ansible-playbook -e 'pkg_name=vsftpd my_action=present' define_vars2.yml

注意:-e参数用来指定变量,有多个变量的时候需要用到引号把参数引起来,并且多个参数之间用空格分开。

请自行完成:使用上面的方式,把刚才安装的vsftpd软件卸载。【一定要做噢】

下一节我们在playbook中定义变量。


 

雷哥开通了抖音(云计算雷哥)和微信视频号,求关注!!!和大家一起学习 技术!

图片

推荐阅读

 

《一站式教程之集群架构》:

 

 

ansible剧本(playbook)- 快速入门

ansible剧本-YAML语法

ansible剧本-playbook核心元素

ansible-playbook命令

playbook核心元素之handlers、notify

playbook核心元素之tags

 

 

 

看完本文有收获?请分享给更多人

推荐关注「Cloud研习社」,带你从零开始掌握云计算技术!

Cloud研习社
为Linux云计算零基础同学服务,致力于打造一套完整的linux云计算教程。包括新手学习路线、linux、存储、集群架构以及Docker,K8S,DevOps等
180篇原创内容

图片


图片

 

收录于合集 #一站式教程
 224
上一篇ansible剧本-变量-常用参数
阅读 34
 
posted @ 2023-04-20 10:51  往事已成昨天  阅读(79)  评论(0编辑  收藏  举报