-1

我是所有 Ansible 的新手。所以大部分时间我都处于“试错”模式。

现在我正面临着一本剧本的挑战,我不知道该往下看。

该剧本的主要任务应该是从 Cisco 设备获取“显示运行”并将其保存在备份服务器(远程服务器)上的文本文件中。

唯一不工作的任务是备份任务。

这是我的剧本:

- 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

有人可以提示我正确的方向吗?

4

1 回答 1

1

connection: local为剧本设置,因此您所做的一切都在本地执行(这对于ios_...模块是正确的,但不是您真正想要的copy模块)。

我建议ansible_connection在您的清单中为每组主机/设备定义变量,因此 Ansible 将为local您的 ios 设备和ssh备份服务器使用连接。

于 2017-12-07T09:31:46.980 回答