ansible使用fetch模块提取ip地址示例
时间: 2023-02-02 15:42:22 浏览: 316
下面是使用Ansible的fetch模块提取远程主机IP地址的示例:
```
- name: Fetch IP address
hosts: remote_host
tasks:
- name: Get IP address
shell: hostname -I
register: result
- name: Save IP address to local file
fetch:
src: "{{ result.stdout }}"
dest: "ip_address.txt"
```
该示例首先在远程主机上执行`hostname -I`命令以获取IP地址,然后使用fetch模块将结果保存到本地文件`ip_address.txt`中。
相关问题
ansible中fetch复制的文件名字前面加ip
在 Ansible 中,可以使用 `delegate_to` 参数指定在远程主机上执行任务。因此,可以通过在复制任务中动态设置 `remote_src` 参数为 True 并使用变量 `inventory_hostname` 来获取远程主机的 IP 地址,将文件名前缀设置为远程主机的 IP 地址。
例如,下面的示例复制远程主机上的文件到本地,并在文件名前添加远程主机的 IP 地址:
```
- name: Fetch file from remote host
fetch:
src: /path/to/file
dest: /local/path/{{ inventory_hostname }}-file
flat: yes
delegate_to: "{{ inventory_hostname }}"
vars:
remote_src: True
```
在上面的示例中,`{{ inventory_hostname }}` 会被替换为远程主机的名称。通过在 `delegate_to` 中设置为 `{{ inventory_hostname }}`,可以确保此任务在正确的远程主机上执行。`remote_src: True` 则表示使用远程主机的路径作为源文件路径。最后,`flat: yes` 表示不创建多级目录结构并将文件复制到目标目录中。
这样,复制到本地的文件名就会以远程主机的 IP 地址作为前缀。
阅读全文