溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Ansible配制Juniper設(shè)備

發(fā)布時(shí)間:2020-09-08 16:31:24 來源:網(wǎng)絡(luò) 閱讀:449 作者:Ybj_314 欄目:網(wǎng)絡(luò)管理

? ?#最近一直在學(xué)習(xí)姜汁老師的Ansible教程,還特意去看了《安德的游戲》。

? ? 寫這篇算是一個(gè)學(xué)習(xí)和實(shí)驗(yàn)的記錄,就怕萬一下次工作需要的時(shí)候自己已經(jīng)忘得一干二凈了,白給。#

????

? ? 首先是Ansible控制主機(jī)的安裝,這里有個(gè)坑。當(dāng)我們執(zhí)行playbook的時(shí)候 會(huì)有Error :xxxxx,Msg:xxxxx,會(huì)提示你install ncclient。因?yàn)閚etconf是Py3的模塊,Ansible默認(rèn)使用的是Py2.7。

? ? ?附上解決辦法的鏈接:https://acozine.github.io/html/reference_appendices/python_3_support.html


? 先去了解下juniper.junos:

Juniper.junos Ansible Modules

Contents:

  • juniper_junos_jsnapy

  • juniper_junos_srx_cluster

  • juniper_junos_ping

  • juniper_junos_command

  • juniper_junos_system

  • juniper_junos_facts

  • juniper_junos_config

  • juniper_junos_software

  • juniper_junos_pmtud

  • juniper_junos_table

  • juniper_junos_rpc

? 甚至?xí)l(fā)現(xiàn)有HA的模塊。facts用于收集junos系統(tǒng)信息,config用來今天幫助我們做配置。


????進(jìn)入到config模塊,可以看到模塊的簡介,選項(xiàng)和例子??梢詧?zhí)行包括:loading or rolling back, checking, diffing, retrieving, and committing the configuration 這么多功能,我們先用用最簡單的commit。在使用之前請先安裝好eznc。

? ? 正式開始配置:

? ? 把host和var寫入到hosts文件里:

????[ex3300]

????192.168.11.169

????[ex3300:vars]

????ansible_connection=network_cli

????#ansible_connection=netconf

????ansible_network_os=junos

????ansible_user=netops

????ansible_password=juniper123


? ? 準(zhǔn)備配置文件:

????more junos_config_vars/vsrx_vars_ex3300.yaml?

????---

?????vsrx_config_ex3300:

? ????- set routing-options static route 2.2.2.2/32 discard

????實(shí)驗(yàn)用了Srx320 19.1R3,Vsrx15.1R和Ex3300 12.3R9版本測試。這里的文件名字寫混亂了 關(guān)系不大。


? ? 設(shè)備初始化:

????設(shè)備的MGT接口 ssh/netconf和ssh用戶:

????set?system?root-authentication?encrypted-password?"$1$d2G1wOPF$Lth.0XBee52ROKcFwayxr/"
????set?system?login?user?netops?uid?203
????set?system?login?user?netops?class?super-user
????set?system?login?user?netops?authentication?encrypted-password?"$1$HFIwO3Kj$OQ9IDKraR5rYSns2mRXJh/"
????set?system?services?ftp
????set?system?services?ssh?root-login?allow
????set?system?services?netconf?ssh?port?830
????set?interfaces?me0?unit?0?family?inet?address?192.168.11.169/24?


? ? 寫劇本:

? ? 配置變量采用導(dǎo)入變量文件的方式,用vars_files參數(shù)來定位。

? ? vars_files:

? ? ????- junos_config_vars/vsrx_vars_ex3300.yaml


? ? ?編輯juniper_junos_config的options:

? ???juniper_junos_config:

? ? ? ????config_mode: 'exclusive' #默認(rèn)就是exclusive

? ? ? ????load: 'set' ?#set或者merge模式

? ? ? ????lines: "{{ vsrx_config_ex3300 }}" #包含配置的字符串列表

? ? ? ????commit: yes #也不check或者干嘛了直接commit


? ? 運(yùn)行。Ansible-playbook junos_config_ex3300.yaml?


????PLAY [configure SRX] ****************************************************************************************


????TASK [configure infomation :] *******************************************************************************

????ok: [192.168.11.169] => {

? ? ????"vsrx_config_ex3300": [ ?#debug輸出var變量也就是配置文件。

? ? ? ? ????"set routing-options static route 3.3.3.3/32 discard"

? ? ????]

????}


????TASK [load configure into vSRX] *****************************************************************************

????這里會(huì)有一大段告警 但是不影響結(jié)果 暫時(shí)不理會(huì)(其實(shí)我去官網(wǎng)看了沒看懂)。

????changed: [192.168.11.169]


????TASK [print configure results] ******************************************************************************

????ok: [192.168.11.169] => { #changed == true 從而debug msg

? ? ????"msg": "vSRX configure completed thanks"

????}


????PLAY RECAP **************************************************************************************************

????192.168.11.169 ? ? ? ? ? ? : ok=3 ? ?changed=1 ? ?unreachable=0 ? ?failed=0 ? ?skipped=0 ? ?rescued=0 ? ?ignored=0


????整理下思路:設(shè)備初始化;Ansible的host和var;配置變量(變量文件的方式);Playbook(可以做的事情太多了 這次使用的有 定位變量的文件位置,配置前先輸出配置,利用模塊導(dǎo)入配置到相應(yīng)的主機(jī),配置成功changed以后輸出提示)。


????在官網(wǎng)的例子里面有一個(gè)是直接這么來的:

????lines:

??????- 'set system services netconf ssh'

? ? ?


? ?最后回到設(shè)備上去看下配置compare | rollback 1:

?+????route?3.3.3.3/32?discard?

????大功告成,簡單的利用Ansible配置Juniper設(shè)備!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI