0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

網(wǎng)絡(luò)設(shè)備自動(dòng)化運(yùn)維工具—ansible入門(mén)筆記介紹

網(wǎng)絡(luò)技術(shù)干貨圈 ? 來(lái)源:網(wǎng)絡(luò)技術(shù)干貨圈 ? 2024-01-15 13:46 ? 次閱讀

Ansible概述:

Ansible是一款自動(dòng)化運(yùn)維工具,基于Python開(kāi)發(fā),集合了眾多運(yùn)維工具 (Puppet、CFengine、Chef、SaltStack)的優(yōu)點(diǎn),實(shí)現(xiàn)了批量系統(tǒng)配置、批量程序部署、批量運(yùn)行命令等功能。

Ansible是基于模塊工作的,本身沒(méi)有批量部署的能力。真正具有批量部署的是ansible所運(yùn)行的模塊,ansible只是提供一種框架。

Ansible支持豐富的的網(wǎng)絡(luò)模板:

網(wǎng)絡(luò)設(shè)備相關(guān)的模板請(qǐng)參照:

https://docs.ansible.com/ansible/2.9/modules/list_of_network_modules.html

例如:cisco ios模塊

3f37428a-b369-11ee-8b88-92fbcf53809c.png

Ansible原理:

3f3b168a-b369-11ee-8b88-92fbcf53809c.png

Ansible對(duì)local本地的linux系統(tǒng)進(jìn)行配置;

Ansible通過(guò)SSH對(duì)node(例如網(wǎng)絡(luò)設(shè)備)進(jìn)行配置;

在其他linux上裝插件,management node通過(guò)插件和其他node進(jìn)行通信,完成自動(dòng)化配置。

Ansible安裝:

Centos:
yum install -y epel-release
yum install -y enable

ansible --version //查看版本號(hào)

3f3ed842-b369-11ee-8b88-92fbcf53809c.png

centos8默認(rèn)使用的是python3.6.8版本

ansible的重要文件:

3f5ffdc4-b369-11ee-8b88-92fbcf53809c.png

ansible.cfg:ansible的系統(tǒng)配置文件。

hosts:定義登陸設(shè)備相關(guān)的文件。

解決SSH Known host key的問(wèn)題:ssh第一次連接設(shè)備,都會(huì)彈出確認(rèn)密鑰的信息。有兩種方式可以解決:

3f6b1fe2-b369-11ee-8b88-92fbcf53809c.png

hosts文件配置:
[CSR1] # 定義第一個(gè)設(shè)備的IP地址
192.168.0.66

[CSR2] # 定義第二個(gè)設(shè)備的IP地址
192.168.0.77

[CSR:children] # 將兩個(gè)設(shè)備加組
CSR1
CSR2

[CSR:vars]
ansible_become=yes # 說(shuō)明設(shè)備有enable密碼,不需要的話可以跳過(guò)這一步
ansible_become_method=enable
ansible_become_password=‘cisco’ # enable密碼
ansible_password=‘Cisc0123’ # SSH密碼
ansible_user=‘prin’ # SSH賬號(hào)
ansible_connection=network_cli # 連接方式
ansible_network_os=ios

Playbook(劇本)簡(jiǎn)介:

Playbook是由一個(gè)或多個(gè)"play"組成的列表。play的主要功能在于將事先歸為一組的主機(jī)裝扮成事先通過(guò)ansible中的task定義好的角色。從根本上來(lái)講,所謂的task無(wú)非是調(diào)用ansible的一個(gè)module(在上文給出的官方網(wǎng)站中去找)。將多個(gè)play組織在一個(gè)playbook中,即可以讓他們聯(lián)通起來(lái)按事先編排的機(jī)制同唱一臺(tái)大戲。

劇本本身是一個(gè)yaml文件,什么是yaml文件,請(qǐng)參考:https://blog.csdn.net/tushanpeipei/article/details/116883378?spm=1001.2014.3001.5501

例如:

3f6fe626-b369-11ee-8b88-92fbcf53809c.png

可以在其中看到{{}},表示jinja2模板替換,我們通常需要在另外一個(gè)yaml文件中保存需要使用的數(shù)據(jù)。例如:

3f73b184-b369-11ee-8b88-92fbcf53809c.png

實(shí)驗(yàn)測(cè)試:

實(shí)驗(yàn)?zāi)康模?/strong>

完成CSR1和CSR2的基礎(chǔ)配置。

前提準(zhǔn)備:

兩臺(tái)CSR1000v設(shè)備,地址為192.168.0.66和192.168.0.77。

在兩臺(tái)設(shè)備上提前配置好SSH。

步驟一: 解決SSH Known host key的問(wèn)題和配置hosts文件。

步驟二: 實(shí)驗(yàn)ping模塊測(cè)試連通性(實(shí)際上是用ping和ssh)

ansibleCSR-mping-o

CSR為組名,會(huì)測(cè)試組中所有的設(shè)備,連通性無(wú)誤后再進(jìn)行后續(xù)步驟。

步驟三: 找到需要配置的具體模塊,例如,需要配置接口的IP地址:

3f866342-b369-11ee-8b88-92fbcf53809c.png

找到對(duì)應(yīng)的模板信息:

3f8a1d66-b369-11ee-8b88-92fbcf53809c.png

步驟四: 組織各個(gè)模板信息組成playbook并且組織記錄數(shù)據(jù)。

config_data.yaml:

---
csr_ifs:
-{ip:1.1.1.1/32,port:Loopback0,router:192.168.0.66}
-{ip:10.1.1.1/24,port:GigabitEthernet2,router:192.168.0.66}
-{ip:2.2.2.2/32,port:Loopback0,router:192.168.0.77}
-{ip:10.1.1.2/24,port:GigabitEthernet2,router:192.168.0.77}

csr_ospf_nets:
-{area:0,mask:0.0.0.0,network:1.1.1.1,router:192.168.0.66}
-{area:0,mask:0.0.0.255,network:10.1.1.0,router:192.168.0.66}
-{area:0,mask:0.0.0.0,network:2.2.2.2,router:192.168.0.77}
-{area:0,mask:0.0.0.255,network:10.1.1.0,router:192.168.0.77}

csr_ospf_router_id:
-{router:192.168.0.66,routerid:1.1.1.1}
-{router:192.168.0.77,routerid:2.2.2.2}

csr_domain_name:"cisco.com"

csr_name_servers:"114.114.114.1148.8.8.8"


csr_syslog_level:
-{dest:console,level:notifications}

csr_syslog_hosts:
-192.168.0.188
-192.168.0.166

csr_user_db:
-{username:qytadmin,privilege:15,password:Cisc0123}
-{username:otheradmin,privilege:1,password:Cisc0123}

...

csr_config_playbook.yaml:

---
-hosts:CSR#playbook操作的設(shè)備,這里是CSR組,包含CSR1和CSR2,也就是兩個(gè)設(shè)備都將執(zhí)行一遍playbook
gather_facts:fase
connection:local
vars_files:
-config_data.yaml#加載數(shù)據(jù)記錄的yaml文件

tasks:
-name:CSR_task_interface#ios_l3_interface(配置IP)
ios_l3_interfaces:
config:
-name:"{{item.port}}"#item為csr_ifs中的每一個(gè)元素,可以看到每個(gè)元素是一個(gè)字典,.port是提取其中port對(duì)應(yīng)的value,替換到模板中
ipv4:
-address:"{{item.ip}}"
with_items:"{{csr_ifs}}"#導(dǎo)入config_data.yaml中csr_ifs這個(gè)部分的配置內(nèi)容
when:(item.router==inventory_hostname)#條件判斷,當(dāng)IP地址等于router的IP才執(zhí)行此任務(wù),用于CSR1和CSR2配置不同的IP地址

-name:noshutdowninterface#ios_interface(打開(kāi)接口)
ios_interfaces:
config:
-name:"{{item.port}}"
enabled:True
with_items:"{{csr_ifs}}"
when:(item.router==inventory_hostname)

-name:ospfrouter-id#ios_config(配置OSPF的router-id)
ios_config:
lines:
-router-id{{item.routerid}}
parents:routerospf1
with_items:"{{csr_ospf_router_id}}"
when:(item.router==inventory_hostname)

-name:ospfnetwork#ios_config(通告接口到OSPF進(jìn)程)
ios_config:
lines:
-network{{item.network}}{{item.mask}}area{{item.area}}
parents:routerospf1
with_items:"{{csr_ospf_nets}}"
when:(item.router==inventory_hostname)

-name:domain#配置域名
ios_system:
domain_name:"{{csr_domain_name}}"

-name:DNS#配置DNS
ios_system:
name_servers:
-"{{csr_name_servers}}"

-name:logging_level#配置日志level
ios_logging:
dest:"{{item.dest}}"
facility:local7
level:"{{item.level}}"
state:present
with_items:"{{csr_syslog_level}}"

-name:logging_host#配置logging服務(wù)器
ios_logging:
dest:host
name:"{{item}}"
state:present
with_items:"{{csr_syslog_hosts}}"

-name:ios_user#管理和創(chuàng)建用戶
no_log:true
ios_user:
name:"{{item.username}}"
privilege:"{{item.privilege}}"
configured_password:"{{item.password}}"
password_type:password
state:present
with_items:"{{csr_user_db}}"

-name:SAVECSRSCONFIG#任務(wù)名字
ios_config:#模塊名字
backup:yes#是否備份
save_when:modified#當(dāng)配置修改就保存配置
...

步驟五: 找到playbook文件,運(yùn)行:

ansible-playbookCSR_config_playbook.yaml
3f8daa44-b369-11ee-8b88-92fbcf53809c.png

可以看到上述圖片中藍(lán)色的顯示,為skipping,也就是劇本里匹配條件沒(méi)有匹配到,跳過(guò)的步驟。

注意: 由于劇本的最后一個(gè)任務(wù)設(shè)置的備份配置,那么在哪運(yùn)行了劇本,會(huì)在哪個(gè)目錄下產(chǎn)生一個(gè)backup目錄,其中記錄了備份的配置。







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11324

    瀏覽量

    209938
  • CSR
    CSR
    +關(guān)注

    關(guān)注

    3

    文章

    118

    瀏覽量

    69672
  • SSH
    SSH
    +關(guān)注

    關(guān)注

    0

    文章

    189

    瀏覽量

    16363
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4801

    瀏覽量

    84849

原文標(biāo)題:網(wǎng)絡(luò)設(shè)備自動(dòng)化運(yùn)維工具——ansible入門(mén)筆記

文章出處:【微信號(hào):網(wǎng)絡(luò)技術(shù)干貨圈,微信公眾號(hào):網(wǎng)絡(luò)技術(shù)干貨圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    誠(chéng)聘高級(jí)運(yùn)自動(dòng)化工程師

    獵頭職位:高級(jí)運(yùn)自動(dòng)化工程師【合肥】工作職責(zé): 1、根據(jù)基礎(chǔ)架構(gòu)運(yùn)管理需求,規(guī)劃設(shè)計(jì)運(yùn)
    發(fā)表于 12-12 10:37

    銳捷助互聯(lián)網(wǎng)數(shù)據(jù)中心網(wǎng)絡(luò)自動(dòng)化、可視運(yùn)

    數(shù)據(jù)中心網(wǎng)絡(luò)提出了相當(dāng)高的要求。開(kāi)放、標(biāo)準(zhǔn)、模塊、軟件定義、虛擬、自動(dòng)運(yùn)
    發(fā)表于 01-25 09:42

    【深圳】誠(chéng)聘運(yùn)開(kāi)發(fā)工程師

    、自動(dòng)化運(yùn)平臺(tái)、負(fù)載均衡、調(diào)度系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)者優(yōu)先;6. 理解HTTP/HTTPS、DNS、LDAP等常見(jiàn)服務(wù)原理;7. 熟悉Ansible自動(dòng)化
    發(fā)表于 07-04 14:34

    學(xué)習(xí)Linux運(yùn)發(fā)展方向

    及丟失等)、對(duì)網(wǎng)站的故障進(jìn)行監(jiān)控、解決網(wǎng)站運(yùn)行的潛在安全問(wèn)題、開(kāi)發(fā)自動(dòng)化腳本程序提高工作效率、規(guī)劃網(wǎng)站架構(gòu)、程序發(fā)布流程和規(guī)范,制定運(yùn)工作制度和規(guī)范、配合開(kāi)發(fā)人員部署并調(diào)試產(chǎn)品研發(fā)需要的測(cè)試環(huán)境、代碼
    發(fā)表于 07-25 17:15

    ansible-first-book 自動(dòng)化運(yùn)工具

    ansible-first-book 自動(dòng)化運(yùn)工具
    發(fā)表于 09-08 09:31 ?5次下載

    配電自動(dòng)化實(shí)用運(yùn)指標(biāo)研究

    根據(jù)《配電自動(dòng)化實(shí)用化驗(yàn)收細(xì)則》中對(duì)配電自動(dòng)化運(yùn)考核要求,重點(diǎn)圍繞終端在線率、遙信動(dòng)作正確率、遙控使用率與遙控成功率四項(xiàng)指標(biāo)進(jìn)行考核。目前對(duì)配電
    發(fā)表于 03-05 14:55 ?0次下載

    厲害了!山東電力運(yùn)自動(dòng)化平臺(tái)正式投運(yùn)

    日前,國(guó)網(wǎng)山東省電力集團(tuán)公司通過(guò)了山東信息通信技術(shù)監(jiān)督裝備及運(yùn)支撐工具開(kāi)發(fā)實(shí)施項(xiàng)目的驗(yàn)收,代表著運(yùn)
    發(fā)表于 04-30 11:18 ?4455次閱讀

    如何區(qū)分Puppet,Ansible,Saltstack的作用特點(diǎn)?

    目前主流的自動(dòng)化運(yùn)工具有puppet、ansible、saltstack,實(shí)際上每一個(gè)工具都基
    的頭像 發(fā)表于 08-05 09:00 ?4844次閱讀

    Ansible企業(yè)級(jí)自動(dòng)化運(yùn)探索的詳細(xì)資料說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是Ansible企業(yè)級(jí)自動(dòng)化運(yùn)探索的詳細(xì)資料說(shuō)明主要內(nèi)容包括了:場(chǎng)景一:自動(dòng)
    發(fā)表于 06-03 08:00 ?2次下載
    <b class='flag-5'>Ansible</b>企業(yè)級(jí)<b class='flag-5'>自動(dòng)化</b><b class='flag-5'>運(yùn)</b><b class='flag-5'>維</b>探索的詳細(xì)資料說(shuō)明

    利用Ansible實(shí)現(xiàn)OpenStack自動(dòng)化

    方法行之有效。 簡(jiǎn)介本文介紹為何Ansible Tower是使用playbook,在OpenStack中創(chuàng)建、部署和配置虛擬機(jī)最簡(jiǎn)單的方法之一。系統(tǒng)性能、IT自動(dòng)化、復(fù)雜系統(tǒng)的部署和快速生產(chǎn)力
    的頭像 發(fā)表于 12-03 17:29 ?2856次閱讀
    利用<b class='flag-5'>Ansible</b>實(shí)現(xiàn)OpenStack<b class='flag-5'>自動(dòng)化</b>

    一文詳解Ansible自動(dòng)化運(yùn)

    CMDB:CMDB 存儲(chǔ)和管理者企業(yè)IT架構(gòu)中的各項(xiàng)配置信息,是構(gòu)建 ITIL 項(xiàng)目的核心工具,運(yùn)人員可以組合 CMDB 和 Ansible,通過(guò) CMDB 直接下發(fā)指令調(diào)用
    的頭像 發(fā)表于 05-19 17:06 ?4375次閱讀
    一文詳解<b class='flag-5'>Ansible</b>的<b class='flag-5'>自動(dòng)化</b><b class='flag-5'>運(yùn)</b><b class='flag-5'>維</b>

    使用Ansible的OpenStack自動(dòng)化

    通過(guò)將 Ansible Tower 與 OpenStack 集成到 Cyber Range 軟件中,我們能夠構(gòu)建一個(gè)應(yīng)用程序,為全球客戶提供按需培訓(xùn)和真實(shí)場(chǎng)景。將 Ansible REST API 與行動(dòng)手冊(cè)集成,極大地利用了配置到更系統(tǒng)
    的頭像 發(fā)表于 12-21 14:12 ?1223次閱讀
    使用<b class='flag-5'>Ansible</b>的OpenStack<b class='flag-5'>自動(dòng)化</b>

    什么是Ansible

    Ansible是一種運(yùn)自動(dòng)化工具軟件,用來(lái)批量配置服務(wù)器或網(wǎng)絡(luò)設(shè)備(目標(biāo)主機(jī))。
    的頭像 發(fā)表于 02-15 14:06 ?1149次閱讀

    為什么需要用Ansible管理crontab呢?

    Ansible 是使用 Python 開(kāi)發(fā)的自動(dòng)化運(yùn)工具。它可以配置管理,部署軟件并編排更高級(jí)的任務(wù),例如持續(xù)部署或零停機(jī)滾動(dòng)升級(jí)。
    的頭像 發(fā)表于 08-17 09:53 ?630次閱讀

    使用Python批量連接華為網(wǎng)絡(luò)設(shè)備

    隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大和設(shè)備數(shù)量的增加,手動(dòng)配置和管理每臺(tái)網(wǎng)絡(luò)設(shè)備變得越來(lái)越不現(xiàn)實(shí)。因此,自動(dòng)化工具和腳本變得尤為重要。Python語(yǔ)言以其簡(jiǎn)潔性和強(qiáng)大的第三方庫(kù)支持,成為了
    的頭像 發(fā)表于 08-12 17:48 ?508次閱讀