Ansible如何在任务失败或无法访问主机时创建XML文件或exec外壳脚本
我已经写了一本剧本,其中介绍了备份网络设备的配置。我的剧本已经完成了Ansible如何在任务失败或无法访问主机时创建XML文件或exec外壳脚本,ansible,Ansible,我已经写了一本剧本,其中介绍了备份网络设备的配置。我的剧本已经完成了 - name: run backup configuration hosts: HOST_NAME gather_facts: no connection: local vars: date: "{{ lookup('pipe', 'date +%Y%m%d') }}" backup_dir: "/backup/backup-{{ date }}" cli: host: "{
- name: run backup configuration
hosts: HOST_NAME
gather_facts: no
connection: local
vars:
date: "{{ lookup('pipe', 'date +%Y%m%d') }}"
backup_dir: "/backup/backup-{{ date }}"
cli:
host: "{{ ansible_host }}"
username: <username>
password: <password>
tasks:
- sros_command:
commands: <command backup>
provider: "{{ cli }}"
register: config
- copy:
content: "{{ config.stdout[0] }}"
dest: "{{ backup_dir }}/backup_conf-{{ inventory_hostname }}.txt"
-名称:运行备份配置
主机:主机名
收集事实:不
连接:本地
变量:
日期:“{lookup('pipe',date+%Y%m%d')}”
备份目录:“/backup/backup-{{date}”
cli:
主机:{{ansible_host}}”
用户名:
密码:
任务:
-sros_命令:
命令:
提供程序:“{{cli}}”
寄存器:config
-副本:
内容:“{config.stdout[0]}”
dest:{{backup_dir}}/backup_conf-{{inventory_hostname}}.txt”
但在主机无法访问或无法运行备份命令或任务时失败。如果出现这种情况,我们可以编写剧本来创建XML或exec shell脚本吗?因为我必须向监控工具发出警报
请帮忙提建议
谢谢您可以在播放、阻止或任务级别使用
忽略错误
和忽略不可访问
关键字。这将允许播放继续,并且您可以将注册结果用作未来任务的条件
例如(在游戏级别):
-名称:运行备份配置
主机:主机名
收集事实:不
连接:本地
忽略错误:是
忽略无法访问的内容:是
变量:
日期:“{lookup('pipe',date+%Y%m%d')}”
备份目录:“/backup/backup-{{date}”
cli:
主机:{{ansible_host}}”
用户名:
密码:
任务:
-sros_命令:
命令:
提供程序:“{{cli}}”
寄存器:config
-
当:config.unreachable
-副本:
内容:“{config.stdout[0]}”
dest:{{backup_dir}}/backup_conf-{{inventory_hostname}}.txt”
当:config.unreachable未定义时
寄存器:复制结果
-
时间:复制_result.failed
请注意,您需要有Ansible 2.7或更高版本才能使用ignore\u unreachable
- name: run backup configuration
hosts: HOST_NAME
gather_facts: no
connection: local
ignore_errors: yes
ignore_unreachable: yes
vars:
date: "{{ lookup('pipe', 'date +%Y%m%d') }}"
backup_dir: "/backup/backup-{{ date }}"
cli:
host: "{{ ansible_host }}"
username: <username>
password: <password>
tasks:
- sros_command:
commands: <command backup>
provider: "{{ cli }}"
register: config
- <task to send alarm notification>
when: config.unreachable
- copy:
content: "{{ config.stdout[0] }}"
dest: "{{ backup_dir }}/backup_conf-{{ inventory_hostname }}.txt"
when: config.unreachable is not defined
register: copy_result
- <task to send alarm notification>
when: copy_result.failed