Ansible Playbook-将输出保存到远程服务器

Ansible Playbook-将输出保存到远程服务器,ansible,backup,cisco-ios,Ansible,Backup,Cisco Ios,我对Ansible的东西都不熟悉。所以大部分时间我都处于“试错”模式 现在我正面临着一个挑战,我不知道该怎么看 这个剧本的主要任务应该是从Cisco设备上获得一个“Show run”,并将其保存在备份服务器(远程服务器)上的文本文件中 唯一不起作用的任务是备份任务 这是我的剧本: - hosts: IOSGATEWAY gather_facts: no connection: local tasks: - name: GET CREDENTIALS include_var

我对Ansible的东西都不熟悉。所以大部分时间我都处于“试错”模式

现在我正面临着一个挑战,我不知道该怎么看

这个剧本的主要任务应该是从Cisco设备上获得一个“Show run”,并将其保存在备份服务器(远程服务器)上的文本文件中

唯一不起作用的任务是备份任务

这是我的剧本:

- hosts: IOSGATEWAY
  gather_facts: no
  connection: local
  tasks:
  - name: GET CREDENTIALS
    include_vars: path/to/all/all.yml

  - name: DEFINE CONNECTION TO GW
    set_fact:
       connection:
          host: "{{ inventory_hostname }}"
          username: "{{ creds['username'] }}"
          password: "{{ creds['password'] }}"

  - name: GET SHOW RUN 
    ios_command:
      provider: "{{ connection }}"
      commands:
         - show run
    register: show_run

  - name: SAVE TO BACKUP SERVER
    copy:
      content: "{{ show_run.stdout[0] }}"
      dest: "path/to/Directory/{{ inventory_hostname }}.txt"
    delegate_to: BACKUPSERVER

有人能告诉我正确的方向吗?

您为playbook设置了
连接:local
,因此您所做的一切都是在本地执行的(这对于
ios.
模块是正确的,但对于
复制
模块则不是您真正想要的)


我建议在每个主机/设备组的资源清册中定义
ansible\u connection
变量,这样ansible将对您的ios设备使用
local
连接,对备份服务器使用
ssh
连接。

Hmm。我认为代码发布的形式更好(啊!好的。你是说我在清单文件中定义了ansible_connection=local?