ansible - 如何将列表中的 Ansible 注册变量存储到单独的变量中
问题描述
我有一本应该在 EC2 实例中创建 LVM 卷的剧本。EC2 实例属于实例类 m5ad.8xlarge,因此 EC2 实例附带两个 600GB 的实例存储。
我正在获取 lsblk 的输出,以将输出范围缩小到实例存储设备,如下所示:-
shell: "lsblk | grep -v nvme0 | grep -v NAME | awk '{print $1}'"
register: lvm_out
以上给出: -
{
"lvm_out.stdout_lines": [
"nvme1n1",
"nvme2n1"
]
}
现在我需要在两个设备上一起运行 pvcreate,如下所示:-
pvcreate /dev/nvme1n1 /dev/nvme2n1
我想知道是否可以使用“set_fact”,但不知道如何在这里使用它。
你们能帮帮我吗?
解决方案
例如
- set_fact:
cmd: "pvcreate {{ lvm_out.stdout_lines|
map('regex_replace', _regex, _replace)|
join(' ') }}"
vars:
_regex: '(^.*$)'
_replace: '/dev/\1'
创建字符串
cmd: pvcreate /dev/nvme1n1 /dev/nvme2n1
推荐阅读
- mysql - 使用d2rq遇到的数据库连接问题
- laravel - 注册后 Laravel Fortify 重定向消息
- azure - 配置 Ubutun ufw 后锁定 Azure VM 实例
- javascript - 如何添加在抽搐机器人中使用命令的人的用户名
- php - 数据库逻辑题的动态切换
- python - 如何根据 Pandas 数据框中另一列的条件将值填充到新列中?
- winforms - 如何使用水平滚动条使datagridview行高自动调整/换行?
- node.js - 如何从nodejs中的xml数据中剪切某些部分
- python - 图形模式下的 tf.gradients() 与 tf.gradientTape.gradient()
- vba - Excel VBA 代码无法赶上 randbetween 函数