Mid Sweden University

miun.sePublications
Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Network automation – the power of Ansible
Mid Sweden University, Faculty of Science, Technology and Media, Department of Information Systems and Technology.
2018 (English)Independent thesis Basic level (university diploma), 10 credits / 15 HE creditsStudent thesis
Abstract [en]

This report discusses network automation primarily with Ansible. Ansible is a software from Red Hat that can be used for network automation. The report also goes through YAML which is a standardized way of exchanging data, Jinja2 that is a templating language, Python as well as the security with Ansible. The report also goes through why network automation is needed as well as how much time might be saved with Ansible. Ansible ships with modules for Cisco IOS such as ios_config and ios_command and for Cisco ASA asa_config, asa_command and asa_acl as well as many other modules for Arista, Juniper and for other vendors. Ansible can use new APIs by creating new modules for handling that particular API, which means that the only change needed in the playbooks is to change the module name. Ansible can handle NETCONF API using the netconf_config module or various Juniper modules. Ansible is used in this report to perform certain tasks such as to adding VLAN's, close ports on ASA's, audit network devices configuration as well as to create network diagram using the information from CDP. Ansible can be made as secure as manually doing the tasks except that Ansible can do it faster and more consistently.  For connecting to normal Linux servers Ansible uses OpenSSH which is a default SSH client on most Linux systems and for connecting to network devices it uses Paramiko. The security in Ansible depends on SSH and may or may not have passwords stored locally, Ansible can be as secure as the administrator wants it to be such as using RSA key-pair to authenticate, using vault encrypted credentials or asking the administrator about which username and password to use. Using Ansible network automation can save time, the amount saved depends on what is being done, how many devices it is doing it on as well as how the playbook is written.

Abstract [sv]

Rapporten behandlar nätverksautomation primärt i Ansible. Ansible är en mjukvara från Red Hat som kan användas för nätverksautomering. Rapporten går igenom YAML som är ett sätt att standardisera överförning av data, Jinja2 som är ett mallspråk, Python samt säkerheten i Ansible. Rapporten går dessutom igenom varför vi ens vill ha nätverksautomation och hur mycket tid som möjligtvis kan sparas. Ansible kommer med moduler för Cisco IOS som exempelvis ios_config och ios_command och för Cisco ASA finns moduler så som asa_config, asa_command och asa_acl. För andra tillverkare så finns det moduler för Arista, Juniper och för andra leverantörer. Om en ny API kommer ut för en ny enhet så kan en ny Ansible modul skapas som använder denna, vilket betyder att Ansible playbooks kan då använda sig av de nya modulerna med samma struktur som tidigare. Ansible kan hantera NETCONF API med hjälp av netconf_config modulen och av flertalet Juniper moduler. Ansible kan användas på ett lika säkert sätt som manuellt arbete, med undantag på att Ansible gör det snabbare och mer konsekvent. För uppkoppling till vanliga Linux-servrar så använder Ansible OpenSSH klienten som standard och mot nätverksenheter utan Python installerat så används Python biblioteket Paramiko. Ansible använder sig av SSH och kan ha lösenord sparat i playbooken, utanför i annan fil, i ett krypterat vault, fråga användaren som användarnamn och lösenord samt autentisering med hjälp av RSA nycklar. Ansible används för att skapa olika VLAN, stänga portar på en ASA, granska nätverksenhetens konfiguration gentemot vad den borde ha för konfiguration samt för att skapa nätverksdiagram baserat på informationen från CDP. Genom att använda sig av Ansible nätverksautomation så kan tid sparas, hur mycket beror helt på vad som ska göras, hur många enheter det ska göras på samt hur playbooken faktiskt är skapad.

Place, publisher, year, edition, pages
2018. , p. 116
Keywords [en]
Ansible, Network automation, YAML, Jinja2, Python, SSH, API
Keywords [sv]
Ansible, Nätverksautomation, YAML, Jinja2, Python, SSH, API
National Category
Computer Engineering
Identifiers
URN: urn:nbn:se:miun:diva-34002Local ID: DT-V18-G2-003OAI: oai:DiVA.org:miun-34002DiVA, id: diva2:1228644
Subject / course
Computer Engineering DT1
Educational program
Network Management TNÄTG 120 higher education credits
Supervisors
Examiners
Available from: 2018-06-28 Created: 2018-06-28 Last updated: 2018-06-28Bibliographically approved

Open Access in DiVA

fulltext(1700 kB)1323 downloads
File information
File name FULLTEXT01.pdfFile size 1700 kBChecksum SHA-512
1dfdefcc000b5002ff902b00595e2c0115a6c3019e3c31c91c3285eea200e82f45ae3f1a2880402c033ef310057a1f8ad32fcf202507a33e73eb3771d6569874
Type fulltextMimetype application/pdf

Search in DiVA

By author/editor
Borgenstrand, Markus
By organisation
Department of Information Systems and Technology
Computer Engineering

Search outside of DiVA

GoogleGoogle Scholar
Total: 1328 downloads
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

urn-nbn

Altmetric score

urn-nbn
Total: 3322 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf