The document discusses getting started with automation on Juniper devices using Python. It provides an overview of the Junos automation options like Ansible, Chef and Puppet before focusing on pyez, a Python library for interacting with a device's NETCONF API. It covers installing pyez and setting up a device connection, and includes examples of retrieving device facts, interface information and the routing table. It also discusses updating the device configuration and more advanced techniques like Jinja templating.
James Winspear, Juniper Networks
Juniper Day, Praha, 13.5.2015
Jestliže SlideShare nezobrazí prezentaci korektně, můžete si ji stáhnout ve formátu .ppsx nebo .pdf (kliknutím na tlačitko v dolní liště snímků).
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...Sencha
At Ubisoft Technology Group, we've created a platform for video game production to share game assets, in-game footage, and animations across the entire company. Ease of search and good UX were incredibly important for an audience of artists and creative types. This is where the Web and a powerful JavaScript framework came in; we chose Ext JS for its robustness and scalability. In this session, we'll showcase two different applications and dive into the technical aspects of designing the UI for a faceted search based on Elasticsearch.
James Winspear, Juniper Networks
Juniper Day, Praha, 13.5.2015
Jestliže SlideShare nezobrazí prezentaci korektně, můžete si ji stáhnout ve formátu .ppsx nebo .pdf (kliknutím na tlačitko v dolní liště snímků).
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...Sencha
At Ubisoft Technology Group, we've created a platform for video game production to share game assets, in-game footage, and animations across the entire company. Ease of search and good UX were incredibly important for an audience of artists and creative types. This is where the Web and a powerful JavaScript framework came in; we chose Ext JS for its robustness and scalability. In this session, we'll showcase two different applications and dive into the technical aspects of designing the UI for a faceted search based on Elasticsearch.
Creating pools of Virtual Machines - ApacheCon NA 2013Andrei Savu
My slides on creating pools of virtual machines for ApacheCon NA 2013 in Portland.
Provisionr Source code:
https://github.com/axemblr/axemblr-provisionr
Apache Incubator proposal:
https://github.com/axemblr/axemblr-provisionr/wiki/Provisionr-Proposal
Best Practices? That’s like asking how long is a piece of string! While every environment is different, there are however a number of configurations, tweaks and methods that can be of great benefit for your Nagios XI environment. This talk will cover a variety of Best Practice topics for Nagios XI ranging from flexible object configurations through to back end performance enhancements.
Practical container scheduling: Juggling optimizations, guarantees, and trade-offs at Netflix. A presentation at MesosCon North America, Sept 15th 2017.
Nagios Conference 2011 - Nate Broderick - Nagios XI Large Implementation Tips...Nagios
Nate Broderick's presentation on Nagios XI large implementation tips and tricks. The presentation was given during the Nagios World Conference North America held Sept 27-29th, 2011 in Saint Paul, MN. For more information on the conference (including photos and videos), visit: http://go.nagios.com/nwcna
Curious about how to take that first step from CCNP to Programmer? Hey guess what, you don't even have to make an entire career out of programming, you can use it to AUGMENT your existing job responsibilities and make your life easier. This deck won't teach you everything you need to know, but it should help making that first step a little bit easier.
Managing Large-scale Networks with Triggerjathanism
Trigger was designed to increase the speed and efficiency of managing network configuration while reducing human error, and is the bread and butter of how we manage the large-scale network at AOL. In this talk I intend to cover the problems we solved using Python to manage our network infrastructure, especially how each network vendor does things distinctly differently, and about the code and API that makes Trigger tick using detailed examples.
Given at SCaLE 11x, Los Angeles, CA
Video: http://www.youtube.com/watch?v=7zZ9980X_bs
Creating pools of Virtual Machines - ApacheCon NA 2013Andrei Savu
My slides on creating pools of virtual machines for ApacheCon NA 2013 in Portland.
Provisionr Source code:
https://github.com/axemblr/axemblr-provisionr
Apache Incubator proposal:
https://github.com/axemblr/axemblr-provisionr/wiki/Provisionr-Proposal
Best Practices? That’s like asking how long is a piece of string! While every environment is different, there are however a number of configurations, tweaks and methods that can be of great benefit for your Nagios XI environment. This talk will cover a variety of Best Practice topics for Nagios XI ranging from flexible object configurations through to back end performance enhancements.
Practical container scheduling: Juggling optimizations, guarantees, and trade-offs at Netflix. A presentation at MesosCon North America, Sept 15th 2017.
Nagios Conference 2011 - Nate Broderick - Nagios XI Large Implementation Tips...Nagios
Nate Broderick's presentation on Nagios XI large implementation tips and tricks. The presentation was given during the Nagios World Conference North America held Sept 27-29th, 2011 in Saint Paul, MN. For more information on the conference (including photos and videos), visit: http://go.nagios.com/nwcna
Curious about how to take that first step from CCNP to Programmer? Hey guess what, you don't even have to make an entire career out of programming, you can use it to AUGMENT your existing job responsibilities and make your life easier. This deck won't teach you everything you need to know, but it should help making that first step a little bit easier.
Managing Large-scale Networks with Triggerjathanism
Trigger was designed to increase the speed and efficiency of managing network configuration while reducing human error, and is the bread and butter of how we manage the large-scale network at AOL. In this talk I intend to cover the problems we solved using Python to manage our network infrastructure, especially how each network vendor does things distinctly differently, and about the code and API that makes Trigger tick using detailed examples.
Given at SCaLE 11x, Los Angeles, CA
Video: http://www.youtube.com/watch?v=7zZ9980X_bs
OSX Pirrit : Why you should care about malicious mac adwarePriyanka Aash
Adware isn’t taken seriously, especially threats targeting Macs. But OSX Pirrit, which can obtain root access and has components found in malware, shows that adware can become a huge security issue. Amit Serper will explain how OSX Pirrit works, why security professionals may want to rethink how commodity threats are handled and why Macs aren’t as secure as people think.
(Source : RSA Conference USA 2017)
Python and Oracle : allies for best of data managementLaurent Leturgez
In this presentation, I described Python and how Python can Interact with Oracle database, and Oracle Cloud Infrastructure in various project : from data visualisation to data science.
An unconventional tutorial to basic socket.io features. Socket.io basic features are explained first of all taking a look directly at the browser (hacker approach) and then taking a look at the documentation (and some code examples).
it should not be complicated to get started understanding and creating networks in openstack. these slides will get you quickly up to speed in a simple way. to understand how the technology works and what you need to create multiple external networks, private and internal networks. check the original file on www.messeiry.com
Automating the Cloud with Terraform, and AnsibleBrian Hogan
Need a web server? So did I. But setting everything up by hand is tedious. In this talk, you'll see how to build a load-balanced web server using Ansible, Terraform, and DigitalOcean, a cloud provider aimed at developers. First, you'll see how to build out the servers and load balancer, and then you'll see how to use Ansible Playbooks to install and upload the web site. When we're done, you'll have scripts you can run to set up your own environment.
Devnet 1005 Getting Started with OpenStackCisco DevNet
Install OpenStack within a VM on your own laptop. Acquaint yourself with the development environment. Learn your way around Horizon (GUI) and the CLI to view and operate an OpenStack cloud. Activate and operate integrations to Cisco network elements
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
2. OFFICE OF THE
NETWORK ENGINEER
• I am not a "Programmer"
• I think about the network & complex networking planning
• I spend a lot of my time fire-fighting the network
• I need automation tools to help me do my job
• I know I need to "level-up" with automation but I need something that helps me get started
• I’d like to use Python since it is shaping up as the standard
3. THINKING LIKE A
PROGRAMMER
• You do *not* have to be a programmer to be successful in automation.
• In the most simple of terms, programming is the manipulation of data.
• You already know the core concepts of data types and how to manipulate
them, the missing link is the language.
4. THIS LOOKS FAMILIAR,
BUT WHAT THE HELL IS
GOING ON
IT'S SHOWTIME
BECAUSE I'M GOING TO SAY PLEASE a
TALK TO THE HAND "a is true"
BULLSHIT
TALK TO THE HAND "a is not true"
YOU HAVE NO RESPECT FOR LOGIC
YOU HAVE BEEN TERMINATED
ArnoldC
https://github.com/lha
rtikk/ArnoldC
5. PYEZ – A LAYERED
APPROACH
Python Shell Python script
IT
Frameworks
Custom
Applications
ncclient
junos-pyez
• Junos specific
• Abstraction Layer
• micro-framework
• NETCONF transport only
• Vendor Agnostic
• No abstractions
• Native Python data types (hash/list)
• Junos specific not required
• XML not required
open-source, Juniper
open-source, Community
interactive simple → complex
6. INTRO
JunOS has a number of automation options available
• Ansible, www.ansible.com
• Chef, www.chef.io/chef/
• Puppet, www.puppetlabs.com
• Salt, www.saltstack.com
Today we will focus on pyez, www.github.com/Juniper/py-
junos-eznc
• A python library to directly interact with a device’s API via
netconf over SSH
• The JunOS API is primarily XML driven, pyez simplifies
that
7. INSTALL PYTHON
FRAMEWORK
Install pip
• Type ‘easy_install pip’
• easy_install assumes your system has python on it
• If not, please install python first
• www.python.org
Install the JunOS python framework
• Type ‘pip install junos-eznc’
Optionally install ipython
• Type ‘pip install ipython’
• ipython provides a better python shell than standard python
• This shell is what will be used in this deck
8. SETUP YOUR DEVICE
JunOS’s API is accessed via SSH and netconf
• Login to your Juniper device
• Type ‘set system services netconf ssh’
• Type ‘commit’
• This will open TCP port 830
• This will need to be done on all devices that want to
participate in automation via netconf
9. SETUP DEVICE
CONNECTION
We need to open a connection to our device, all scripts or
interactions via the shell will need to use the Device object and
call open() before we do anything
• Type ‘python’ or ‘ipython’ to enter the interactive shell
• Type ‘from jnpr.junos import Device’
• We need to import a class Device, to access to code for
connecting
• Type ‘myDev = Device('192.168.212.129', user='dave',
password='juniper123’)’
• myDev is now our connection variable
• Type ‘myDev.open()’
• If you get a connection error, check your username and
password
• Also check that TCP port 830 is open on your device
10. MORE SECURE WAY
TO CONNECT
Typing out a plain text password isn’t ideal for a shell or a script,
so we can set it as a local environment variable and call it that
way
• Before starting the python shell (or script) type ‘export
MYSSHPW=“yourSSHPass”’
• This assumes you are using Bash for your shell
• Now we setup the connection like we previously did
• Type ‘python’ or ‘ipython’ to enter the interactive shell
• Type ‘from jnpr.junos import Device’
• Type ‘import os’
• Type ‘sshpass = os.environ['MYSSHPW']’
• This assigns the variable “sshpass” to your ssh password
• Type ‘myDev = Device('192.168.212.129', user='dave',
password=sshpass)’
• Type ‘myDev.open()’
11. SETUP CONNECTION
VIA SSH KEY
If you want to use an SSH key to login to the device, that is
also possible
• Before starting the python shell (or script) type ‘export
MYSSHPW=“yourSSHPass”’
• This assumes you are using Bash for your shell
• Now we setup the connection like we previously did
• Type ‘python’ or ‘ipython’ to enter the interactive shell
• Type ‘from jnpr.junos import Device’
• Type ‘sshpass = os.environ['MYSSHPW']’
• This assigns the variable “pass” to your ssh password
• Type ‘myDev = Device('192.168.212.129', user='dave',
password=sshpass),
ssh_private_key_file='/home/dave/.ssh/id_rsa'’
• Type ‘myDev.open()’
12. CHECK SOME FACTS
Now that we have a good connection open let’s see some
device attributes
• Type ‘from pprint import pprint’
• We want a “pretty print” option for printing out our
attributes
• Type ‘pprint( myDev.facts )’
• This should output a python dictionary of device attributes
• But maybe we want to get a specific fact, like a serial
• In this case we use key -> value to grab it
• Type ‘pprint ( myDev.facts['serialnumber'] )’
• This is using our myDev.facts dictionary and calling
the key “serialnumber” to get the serial number’s
value
13. REFRESH AND CHECK
Some attributes may change like system uptime
• We can refresh the device facts by asking for an update
• Type ‘myDev.facts_refresh()’
• Now we can see if anything has changed
• For instance, the uptime should have incremented
• Type ‘pprint ( myDev.facts['RE0']['up_time'] )’
• Note here that we are accessing a dictionary within a
dictionary
• We are asking for the RE0 key inside our
myDev.facts dict and the up_time key inside of
the RE0 dict
14. LOOK AT THE
INTERFACES
Perhaps we want to check into our ethernet interfaces
• Type the following block of code:
• This should give you a dictionary of all of your interfaces
and associated attributes
from jnpr.junos.op.ethport import EthPortTable
eths = EthPortTable(myDev)
eths.get()
x = 0
while x < len(eths):
print "Interface: " + eths.keys()[x] + " Information"
print eths[x].items()
x += 1
15. A BETTER INTERFACE
LIST
This will give a printout of all ethernet interfaces on a device,
whether or not they are up, the corresponding mac address
and duplex setting
from jnpr.junos.op.ethport import EthPortTable
eths = EthPortTable(myDev)
eths.get()
x = 0
while x < len(eths):
print "Interface {} is {}, MAC: {}, Link Mode: {}".format(eths.keys()[x],
eths[x].oper, eths[x].macaddr, eths[x].link_mode )
x += 1
16. LOOKING AT THE
ROUTE TABLE
Check out the routing table, but do note, this could be very
memory intensive for tables with huge numbers of routes
from jnpr.junos.op.routes import RouteTable
routes = RouteTable(myDev)
routes.get()
r = 0
while r < len(routes):
print "Route: {}, via interface: {}, protocol: {}".format(routes.keys()[r],
routes[r].via, routes[r].protocol)
r += 1
17. UPDATING A CONFIG
TUTORIAL
• https://pynet.twb-tech.com/blog/juniper/juniper-pyez.html
• https://pynet.twb-tech.com/blog/juniper/juniper-pyez-
commit.html
18. ADVANCED
TECHNIQUES
• Jinja2
• Smart templating system
• SLAX
• On board scripts
• http://www.juniper.net/techpubs/en_US/junos-
pyez1.0/topics/task/program/junos-pyez-program-
configuration-data-loading.html
• JunOS 14.2
• REST API
19. BONUS - ZTP
• ZTP or Zero-Touch Provisioning allows you to setup a
device without every logging in.
• ZTP utilizes DHCP and (T)FTP/HTTP. With these it can
upgrade code and/or add a configuration to a device.
• ZTP is enabled by default on JUNOS from the factory or
via ‘request system zeroize’.
• ZTP requires DHCP option 43 to be set and serves a
number of suboptions.
• http://www.juniper.net/techpubs/en_US/junos13.3/topics/ta
sk/configuration/software-image-and-configuration-
automatic-provisioning-confguring.html
20. SUBOPTIONS
• 00 - name of the software image file to install
• 01 - name of the configuration file to install
• 03 - transfer mode (ftp, tftp, http)