ansible批量自动配置Juniper

一、需求

有几台新上线的Juniper,需要批量配置下syslog,ntp,snmp基础配置

二、拓扑

  

三、实施步骤

1.读取配置并输出作为初步核查
2.把配置载入网络其中一台网络设备中,并做一个show | compare输出,然后做一个commit check核查,最后退出设备
3.输出一个提醒,要求输入yes 或者no。yes代表继续tasks,进入第4步;no代表退出playbook,终止程序
4.将配置输入到设备,并设定一个10分钟倒回时间
5.commit check 确认配置,停止倒回时间

四、脚本

  1. 创建一个变量文件夹junos_config_vars

    mkdir junos_config_vars

2.在变量文件夹里创建一个变量文件vsrx_vars.yml

    nano junos_config_vars/vsrx_vars.yml

---
  vsrx_config:
  #系统基本参数配置
    - set system syslog host 1.1.1.1 any any
    - set system syslog source-address 192.168.62.44
    - set system ntp server 192.168.62.254
    - set system ntp source-address 192.168.62.44
    - set snmp location "Shanghai China"
    - set snmp contact "lisl"
    - set snmp community public authorization read-only
    - set snmp trap-group gingerdoc targets 192.168.62.253

  3.编辑inventory文件

     nano lisl_hosts

[junos]
junipervsrx02 junos_host=192.168.2.43
junipervsrx01 junos_host=192.168.2.44

  4.编辑层次化变量组文件

     nano group_vars/junos.yaml

---
ansible_connection: local
ansible_network_os: junos
ansible_user: admin
ansible_ssh_pass: juniper123

  5.编辑剧本playbook:config.yml

---
- name: 配置SRX
  hosts: junipervsrx01
  gather_facts: no
  vars_files:
    - junos_config_vars/vsrx_vars.yml
  roles:
    - Juniper.junos

  tasks:
  - name: "配置如下:"
    debug:
      var: vsrx_config

  - name: 导入配置进入第一台vSRX,仅作核查之用
    juniper_junos_config:
      config_mode: ‘exclusive‘
      load: ‘set‘
      lines: "{{vsrx_config}}"
      commit: no
      check: yes
      diff: yes
      provider:
        host: "{{junos_host}}"
        timeout: 120
    register: check_result

  - name: "show | compare输出如下:"
    debug:
      msg: "{{check_result.diff_lines}}"
    when: check_result.diff_lines is defined

#第二个play
- name: 配置SRX
  hosts: junos
  gather_facts: no
  vars_files:
    - junos_config_vars/vsrx_vars.yml
  roles:
    - Juniper.junos
  vars_prompt:
    - name: "confirm_result"
      prompt: "请确认上述核查结果,满意输入:yes,不满意输入:no.\n\n请输入"
      private: no
  tasks:

  - name: 判断结果
    debug:
      msg: 谢谢确认,核查完毕,开始批量配置阶段!
    when: confirm_result == "yes"
    run_once: yes
    delegate_to: localhost
  - fail:
      msg: 谢谢确认,由于您不满意核查结果,playbook即将退出,谢谢!
    when: confirm_result != "yes"

  - name: 导入配置进入vSRX
    juniper_junos_config:
      config_mode: "exclusive"
      load: ‘set‘
      lines: "{{vsrx_config}}"
      commit: yes
      comment: "Ticket No.12345:configure system parameter"
      confirmed: 10
      diff: yes
      dest_dir: junos_diff/
      provider:
        host: "{{junos_host}}"
        timeout: 120
    notify: 配置完毕,开始确认配置

  handlers:
    - name: 配置完毕,开始确认配置
      juniper_junos_config:
        commit_empty_changes: yes
        comment: "Ticket No. 12345:Confirm the change"
        provider:
          host: "{{junos_host}}"
          timeout: 120

  6.运行剧本

    ansibel-playbook config.yml

五、脚本参数讲解

  1.when: check_result.diff_lines is defined  #存在值,就输出show | compare,因为不加when,当遇到重复配置的情况,diff_lines是不存在的,此时ansible会报错,然后中止playbook

  2.yes或no  #输入yes,代表认可上述配置;输入no,代表上述配置有问题,选择手工中止playbook

  3.vars_prompt  

    prompt  #prompt参数类似于python里的input

    name  #变量名,将用户输入信息赋值给变量名confirm_result

  4.fail  #失败模块,执行的话,就结束

    msg  #打印msg内容

  5. run_once: yes  #仅仅运行一次

  6. delegate_to: localhost  #任务委派功能,指在本地localhost执行操作  

  7. notify  #通知,当你执行某个task以后,你在task的末尾做一个通知,并附上一个名称或者内容

  8. handlers  #与tasks平级的功能区,handlers下的name名称与notify的名称相同,则激活handlers,如果有多个task任务同时呼叫一个handler,此handler也只执行一次

原文地址:https://www.cnblogs.com/lisenlin/p/11066012.html

时间: 2024-10-15 12:10:27

ansible批量自动配置Juniper的相关文章

网络设备-批量自动配置备份软件Kiwi cattools使用介绍

先说下,以往常见配置备份和变更后,运维工程师的痛点.维护的设备越多越容易出错.几台还勉强能做好,一旦体量超过20台以上后,很多配置备份都会或多或少出现不少问题. 所以这里也特意挑了一款软件,简单的聊聊这工具确实不错.上菜,各位注意!! 安装文档,和安装软件,暂时不贴出来.拒绝伸手党.!!!! Kiwi cattools 网络设备配置备份管理软件操作文档 第一步:如下为打开界面一览. 第二步:现在开始新增设备(Juniper-SSG140)为例:点击Add PS:还是能支持很多类型的,如下所示 D

ansible实战--批量自动安装与删除zabbix agentd

想必做网站运维的,对目前主流的开源监控组件zabbix应该不陌生.它功能是很强悍,但是被监控的客户端安装agentd是一件很吃力且费时的工作.如果你管理的server数量不多还好,大不了手工1台1台的安装.相反你管理的server数量很多,不采取自动化,真的会让人做梦都会想到安装zabbix agentd. 本次实战ansible批量自动安装与卸载zabbix agentd,版本zabbix-2.0.14+centos6.4+ansible1.8.1 下面就开始吧 1.安装配置ansible工具

通过ansible批量管理Linux服务器:配置Inventory和批量执行命令

ansible是一款比较新的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能.ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.主要包括:(1).连接插件connection plugins:负责和被监控端实现通信:(2).host inventory:指定操作的主机,是一个配

[转帖]Ansible批量远程管理Windows主机(部署与配置)

2018-09-12 12:04:42 https://blog.51cto.com/7424593/2174156 一.测试环境介绍 Ansible管理主机: 系统:   CentOS6.8 IP Addr: 172.16.10.22 Linux管理服务器需安装pip.pywinrm插件 Windows客户端主机: 系统:   Server2008R2 SP1 IP Addr: 172.16.10.23 Windows机器需要安装或升级powershell4.0以上版本,Server2008R

Linux中ansible批量管理软件部署及剧本编写

服务器版本信息: Centos6.9 [[email protected] ~]# uname -a Linux db02 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux ansible软件介绍 ansible是一个基于Python开发的自动化运维工具! 其功能实现基于SSH远程连接服务! ansible可以实现批量系统配置.批量软件部署.批量文件拷贝.批量运行命令等

免密码交互方式+ansible批量管理服务介绍

介绍了ssh服务 1) 远程连接加密传输数据协议,实现远程连接登录,默认端口222)ssh远程连接原理依赖于锁头(公钥)和钥匙(私钥),实现远程加密连接3)ssh基于秘钥远程登录原理a 管理服务器创建秘钥対,将公钥传输发送给给管理端b 管理端请求与被管理端建立连接c 被管理向管理端发送公钥质询d 管理端处理质询信息,实现管理与被管理端免密码交互4)基于ssh协议相关命令ssh scp sftp netstat -lntup |egrep sshd 查看ssh端口 1.1 部署ssh+key (免

Ansible批量自动化管理工具

批量管理服务器的工具,无需部署代理,通过ssh进行管理,是python写的 ansible 常用模块 : (1)shell命令模块执行命令 (2)copy模块批量下发文件或文件夹 (3)script模块批量运行脚本  Python3与ansible的安装 使用源码安装Python3.5 #安装支持包 yum -y install lrzsz vim net-tools gcc gcc-c++ ncurses ncurses-devel unzip zlib-devel zlib openssl-

自动化运维Ansible批量部署服务+shell脚本批量推送公钥

一.概述分析 由于互联网的快速发展导致产品更新换代速度逐渐加快,运维人员每天都要进行大量的维护操作,仍旧按照传统方式进行维护会使得工作效率低下.这时,部署自动化运维就可以尽可能安全.高效地完成这些工作.一般会把自动化运维工具划分为两类:一类是需要使用代理工具的,也就是基于专用的ABem程序来完成管理功能,如: Puppet.Func. Zabbix等:另外一类是不需要配置代理工具的,可以直接基于SSH服务来完成管理功能,如: Ansible. Fabric等. - 下面介绍几款功能类似的自动化运

ansible批量部署(一)

自动化运维工具shell脚本/Ansible(无客户端)/Saltstack(master-minion) 回顾服务器部署的流程:买云主机->环境部署->软件部署->配置部署->启动服务->测试->加入集群 1.Ansible基本概述ansible是一个配置管理系统configuration management system你只需要可以使用ssh访问你的服务器或设备就行 Ansible能做什么可以帮助我们完成一些批量任务,或者完成一些需要经常重复的工作. Ansibl