精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

網絡設備自動化運維工具—ansible入門筆記介紹

網絡技術干貨圈 ? 來源:網絡技術干貨圈 ? 2024-01-15 13:46 ? 次閱讀

Ansible概述:

Ansible是一款自動化運維工具,基于Python開發,集合了眾多運維工具 (Puppet、CFengine、Chef、SaltStack)的優點,實現了批量系統配置、批量程序部署、批量運行命令等功能。

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

Ansible支持豐富的的網絡模板:

網絡設備相關的模板請參照:

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對local本地的linux系統進行配置;

Ansible通過SSH對node(例如網絡設備)進行配置;

在其他linux上裝插件,management node通過插件和其他node進行通信,完成自動化配置。

Ansible安裝:

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

ansible --version //查看版本號

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

centos8默認使用的是python3.6.8版本

ansible的重要文件:

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

ansible.cfg:ansible的系統配置文件。

hosts:定義登陸設備相關的文件。

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

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

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

[CSR2] # 定義第二個設備的IP地址
192.168.0.77

[CSR:children] # 將兩個設備加組
CSR1
CSR2

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

Playbook(劇本)簡介:

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

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

例如:

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

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

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

實驗測試:

實驗目的:

完成CSR1和CSR2的基礎配置。

前提準備:

兩臺CSR1000v設備,地址為192.168.0.66和192.168.0.77。

在兩臺設備上提前配置好SSH。

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

步驟二: 實驗ping模塊測試連通性(實際上是用ping和ssh)

ansibleCSR-mping-o

CSR為組名,會測試組中所有的設備,連通性無誤后再進行后續步驟。

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

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

找到對應的模板信息:

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

步驟四: 組織各個模板信息組成playbook并且組織記錄數據。

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操作的設備,這里是CSR組,包含CSR1和CSR2,也就是兩個設備都將執行一遍playbook
gather_facts:fase
connection:local
vars_files:
-config_data.yaml#加載數據記錄的yaml文件

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

-name:noshutdowninterface#ios_interface(打開接口)
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進程)
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服務器
ios_logging:
dest:host
name:"{{item}}"
state:present
with_items:"{{csr_syslog_hosts}}"

-name:ios_user#管理和創建用戶
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#任務名字
ios_config:#模塊名字
backup:yes#是否備份
save_when:modified#當配置修改就保存配置
...

步驟五: 找到playbook文件,運行:

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

可以看到上述圖片中藍色的顯示,為skipping,也就是劇本里匹配條件沒有匹配到,跳過的步驟。

注意: 由于劇本的最后一個任務設置的備份配置,那么在哪運行了劇本,會在哪個目錄下產生一個backup目錄,其中記錄了備份的配置。







審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11232

    瀏覽量

    208949
  • CSR
    CSR
    +關注

    關注

    3

    文章

    118

    瀏覽量

    69602
  • SSH
    SSH
    +關注

    關注

    0

    文章

    185

    瀏覽量

    16308
  • python
    +關注

    關注

    56

    文章

    4783

    瀏覽量

    84473

原文標題:網絡設備自動化運維工具——ansible入門筆記

文章出處:【微信號:網絡技術干貨圈,微信公眾號:網絡技術干貨圈】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    誠聘高級自動化工程師

    獵頭職位:高級自動化工程師【合肥】工作職責: 1、根據基礎架構管理需求,規劃設計
    發表于 12-12 10:37

    銳捷助互聯網數據中心網絡自動化、可視

    數據中心網絡提出了相當高的要求。開放、標準、模塊、軟件定義、虛擬自動
    發表于 01-25 09:42

    【深圳】誠聘開發工程師

    自動化平臺、負載均衡、調度系統開發經驗者優先;6. 理解HTTP/HTTPS、DNS、LDAP等常見服務原理;7. 熟悉Ansible自動化
    發表于 07-04 14:34

    學習Linux發展方向

    及丟失等)、對網站的故障進行監控、解決網站運行的潛在安全問題、開發自動化腳本程序提高工作效率、規劃網站架構、程序發布流程和規范,制定工作制度和規范、配合開發人員部署并調試產品研發需要的測試環境、代碼
    發表于 07-25 17:15

    ansible-first-book 自動化工具

    ansible-first-book 自動化工具
    發表于 09-08 09:31 ?5次下載

    配電自動化實用指標研究

    根據《配電自動化實用化驗收細則》中對配電自動化考核要求,重點圍繞終端在線率、遙信動作正確率、遙控使用率與遙控成功率四項指標進行考核。目前對配電
    發表于 03-05 14:55 ?0次下載

    厲害了!山東電力自動化平臺正式投

    日前,國網山東省電力集團公司通過了山東信息通信技術監督裝備及支撐工具開發實施項目的驗收,代表著
    發表于 04-30 11:18 ?4439次閱讀

    如何區分Puppet,Ansible,Saltstack的作用特點?

    目前主流的自動化工具有puppet、ansible、saltstack,實際上每一個工具都基
    的頭像 發表于 08-05 09:00 ?4783次閱讀

    Ansible企業級自動化探索的詳細資料說明

    本文檔的主要內容詳細介紹的是Ansible企業級自動化探索的詳細資料說明主要內容包括了:場景一:自動
    發表于 06-03 08:00 ?2次下載
    <b class='flag-5'>Ansible</b>企業級<b class='flag-5'>自動化</b><b class='flag-5'>運</b><b class='flag-5'>維</b>探索的詳細資料說明

    利用Ansible實現OpenStack自動化

    方法行之有效。 簡介本文介紹為何Ansible Tower是使用playbook,在OpenStack中創建、部署和配置虛擬機最簡單的方法之一。系統性能、IT自動化、復雜系統的部署和快速生產力
    的頭像 發表于 12-03 17:29 ?2784次閱讀
    利用<b class='flag-5'>Ansible</b>實現OpenStack<b class='flag-5'>自動化</b>

    一文詳解Ansible自動化

    CMDB:CMDB 存儲和管理者企業IT架構中的各項配置信息,是構建 ITIL 項目的核心工具人員可以組合 CMDB 和 Ansible,通過 CMDB 直接下發指令調用
    的頭像 發表于 05-19 17:06 ?4305次閱讀
    一文詳解<b class='flag-5'>Ansible</b>的<b class='flag-5'>自動化</b><b class='flag-5'>運</b><b class='flag-5'>維</b>

    使用Ansible的OpenStack自動化

    通過將 Ansible Tower 與 OpenStack 集成到 Cyber Range 軟件中,我們能夠構建一個應用程序,為全球客戶提供按需培訓和真實場景。將 Ansible REST API 與行動手冊集成,極大地利用了配置到更系統
    的頭像 發表于 12-21 14:12 ?1126次閱讀
    使用<b class='flag-5'>Ansible</b>的OpenStack<b class='flag-5'>自動化</b>

    什么是Ansible

    Ansible是一種自動化工具軟件,用來批量配置服務器或網絡設備(目標主機)。
    的頭像 發表于 02-15 14:06 ?948次閱讀

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

    Ansible 是使用 Python 開發的自動化工具。它可以配置管理,部署軟件并編排更高級的任務,例如持續部署或零停機滾動升級。
    的頭像 發表于 08-17 09:53 ?586次閱讀

    使用Python批量連接華為網絡設備

    隨著網絡規模的擴大和設備數量的增加,手動配置和管理每臺網絡設備變得越來越不現實。因此,自動化工具和腳本變得尤為重要。Python語言以其簡潔性和強大的第三方庫支持,成為了
    的頭像 發表于 08-12 17:48 ?419次閱讀