I have had my CCNA for a long time now but never really though about the Juniper certification path. With juniper popping up a little more frequently in places of work and NetworkChuck's 30 Day Cert Challenge I decided to step out of Cisco land and get my JNCIA . Here is a quick dump of my study notes that might be helpful if you're heading down the JNCIA path.
With the update for my site to use “chips” to link to related pages its very easy for me tag a post with a tag that doesn’t have the supporting “tagged” page and resulting in a broken link. With the number of chips and tags I have across this site manually verifying each one manually is far to inefficient. Using LinkChecker makes this process quick and easy.
Recently, I stumbled across Rachel V. Madrigal’s blog and really liked the design and functionality of their site. In the post Using Material Design Lite with Jekyll for a simple blog they describe how their site has been put together using a template from using the Material Design Lite (MDL). Impressed with the results, I decided to update my own site to be built from the same template.
Infoblox is a popular tool that enables teams to centrally manage DNS, DHCP, and IP addresses (DDI) efficiently. One way to automate Infoblox is through the use of Ansible with the use of the Infoblox Ansible collection.
However, when using the Infoblox Ansible collection I quickly encountered some missing functionality…
- Define a member as a Grid Master Candidate
- Assign members to a network
- Define a DHCP range
In this blog post, I will discuss some of the changes I have proposed to fix these issues that exists in v1.4.1.
In Ansible , you can define variables in a variety of places, including inventory files, playbook files, and role defaults and vars files. When defining variables, you can use YAML anchors and aliases to reduce repetition and make your code more readable.
1
2
3
4
5
6
7
8
9
10
vars:
# Define an anchor called "common_vars"
common_vars: &common_vars
version: 2.0
name: My Application
# Define a variable that uses the "common_vars" anchor and adds additional information
prod_vars: &prod_vars
<<: *common_vars
environment: production
I have been using WSL for some time now. Having quick and easy access to a nix distribution is so handy in many ways. Not having to worry about managing VMs in a hypervisor makes the whole experience so much nicer. Today I switched back to a Ubuntu install I hadn’t used from quite a while and the first thing was to run sum updates but I had forgotten the password I had set.
This post covers the simple process to perform a password recovery of a WSL install.
In the post Handy Ansible Logic I described a situation where moving ansible logic out of when:
statement and into an inline Jinja achieved a much cleaner solution. Recently, I had a similar situation where I needed to extend what I was doing in the Jinja. This time, I needed to dynamically construct the a variable to pass into a modules parameter.
1
2
3
4
5
6
7
8
9
- name: Example 1 - Set facts
set_fact:
output: >-
{%- set output_list = [] -%}
{%- for server in ip_list -%}
{%- set my_server = {'name': server.name, 'type': 'IPv4'} -%}
{{ output_list.append( my_server ) }}
{%- endfor -%}
{{ output_list }}
I have done a lot of work with Tenable over the last five years and achieved some really awesome results with the Tenable product suite, however, recently I was helping a customer with the slightly too frequent issue where Tenable broke their network.
Here’s what went wrong and the fix in this situation…
I have been using the http.server Python module for some time but recently, it's been more handy than ever. Whether it's testing network controls, Load Balancer configurations or simply copying a file from one location to another. Whichever the reason, the Python http.server module is so simple to use you can't afford not to know.
Recently I was writing what initially looked like a pretty straight forward ansible play. Everything was progressing quite well until I came to a point where I needed to set one variable, only when another variable was set. My first pass at this logic was to repeat the task, and control which task was run with a when:
statement. This worked, but just wasn’t ideal with all of the duplicated code. I just knew there had to be a better way and there was.
While setting up some new DNS records for a mail gateway migration, I found myself reading the related RFCs which we all know tends to hurt the brain but this time it lead to something quite interesting. After reading the ins and outs of SPF , DKIM and DMARC I could see several common implementation scenarios that would allow carefully crafted emails to circumvent the implemented controls, as SPF doesn't apply to subdomains. It might just be that 1 DNS A record needs another 2 TXT records to close the gaps.
This site is hosted on GitHub Pages, built with Jekyll and customised from the Lanyon theme. Without each of these, this site would not be here.