Ansible Playbook-将输出保存到远程服务器
我对Ansible的东西都不熟悉。所以大部分时间我都处于“试错”模式 现在我正面临着一个挑战,我不知道该怎么看 这个剧本的主要任务应该是从Cisco设备上获得一个“Show run”,并将其保存在备份服务器(远程服务器)上的文本文件中 唯一不起作用的任务是备份任务 这是我的剧本: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
- 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?