ansible-playbook任务传递变量

变量传递

我们这里有两个任务,第二任务必要得到第一个任务后的结果才能触发给第二个任务。
我们写这样一个脚本,
register vars(获取变量)
我们用shell模块获取一个主机名。hostname
register: info
我们的shell不是去执行一个hostname 这样的一条语句嘛
它执行完成后会吧这个值赋值给我们的info这个变量(赋值给info这么的一个变量)
这里使用到的是register这个模板,register就有这么一个功能,把你执行完成的值赋值给info
我们再使用一个name来标识显示这样的一个变量;
我们这里使用一个debug,来输出我们的信息,我们来打印一个info
来看看我们的脚本
在这里插入图片描述
输出的结果如下
在这里插入图片描述

这里打印了我们这么多的内容,哪些是我们想要的啊,只有cmd里面的是我们想要的,
这里像不像我们的字典,左边的键右边的是值。
那么我们怎么调用这个值啊看看
这里我们再info后面加上stdout直接调用这个值,将其输出。如下
脚本如下:
在这里插入图片描述
修改脚本后,执行后我们可以看到是不是我们想要的主机的名被打印出来啊。
在这里插入图片描述

循环基础

情景设定:假如我们要安装二十个软件,想想我们是不是要写这样的语句写二十编,如下图:
在这里插入图片描述
写这样的二十条,是非常不合理的。那么我们可以使用一个循环来把这个问题解决了。
我们这里可以想想再python里面会怎么做?
如下图:
在这里插入图片描述
这里我们就不管你是二十个还是三十个,还有一千个,我们都可以一个循环跑完。
但是在ansible不是这样的简单的循环,有ansible自己的一个循环语法。它和python的语法有点不一样,我们的剧本它是一个yaml的一个语法,是yml的语法就得用yml的方式来解决这个问题。
我们这里写一个loops.yml的脚本。如下图
在这里插入图片描述
这里item是一个固定写法,我们这里先记住。
with_items是一个模板,这个模板的主要功能就是循环迭代我们下面的变量,在这里的关键字表示迭代的是一个列表。列表里面的每一个变量叫做items。我们都学过C或者Python。那么我们翻译一下这个循环。
for item in with_items:
printf item
大致就是这么一个意思
那么我们来执行一下这个循环。
自己修改一下这个脚本。这个脚本上面有两个常规的习惯错误,第一个发现并改正的同学,请记录在留言区域。并给老师讲。
在这里插入图片描述
好了,这个就是我们的初见循环的讲解。
祝大家学习愉快,
感谢CSDN学习平台。

  • 11
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
Ansible-playbookAnsible 的一个命令行工具,用于运行 Ansible Playbook 文件。以下是 Ansible-playbook 的语法: ``` ansible-playbook [options] playbook.yml ``` 其中,`options` 是可选参数,包括: - `-i INVENTORY, --inventory-file=INVENTORY`:指定 Ansible Inventory 文件的路径。 - `-l SUBSET, --limit=SUBSET`:限制 Playbook 的作用范围到某些主机或组。 - `-t TAGS, --tags=TAGS`:只运行指定标签的任务。 - `-e EXTRA_VARS, --extra-vars=EXTRA_VARS`:传递额外的变量Playbook。 - `-f FORKS, --forks=FORKS`:指定同时在多少台主机上运行任务。 - `-v, --verbose`:增加 Ansible 的输出详细程度。 - `-vv, --verbose --verbose`:增加更详细的输出。 - `-vvv, --verbose --verbose --verbose`:增加最详细的输出。 `playbook.yml` 是 Ansible Playbook 文件的路径。Playbook 文件是一个 YAML 格式的文件,包含了一系列任务和配置信息。其中,每个任务都包含了一个或多个模块,用于在远程主机上执行操作。 以下是一个简单的 Ansible Playbook 示例: ```yaml --- - name: Install Apache HTTP Server hosts: webservers become: true tasks: - name: Install Apache HTTP Server yum: name: httpd state: present - name: Start Apache HTTP Server service: name: httpd state: started enabled: true ``` 该 Playbook 包含了两个任务,分别用于安装和启动 Apache HTTP Server。其中,`hosts` 参数指定了要在哪些主机上执行任务,`become` 参数指定了以超级用户身份执行任务。每个任务都包含了一个模块,用于执行操作。在该示例中,分别使用了 `yum` 和 `service` 模块来安装和启动 Apache HTTP Server。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李茂茂茂茂茂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值