Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add eos image 4.24.6F #23

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,14 @@ checksum_to_platform_version:
platform: eos
build_version: 4.23.0F
src_image_format: vmdk
ad456b76a00ad0170470654ef20e37bde0d87278:
platform: eos
build_version: 4.24.6M
src_image_format: vmdk
b95264d2271d29e50a08ba41749337b7ae3ffc20:
platform: eos
build_version: 4.26.1F
src_image_format: vmdk
f6dc60eb343efae0ca0c1cb2a83a8eae030c9c8e:
platform: vyos
build_version: 1.1.8
Expand Down
16 changes: 16 additions & 0 deletions tasks/build_image.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,22 @@
enable_password: "{{ lookup('password', '/dev/null length=12') }}"
when: enable_password is not defined


- name: Zerotouch disable
include: "{{ platform }}/{{ build_version }}/disable_ztp.yaml"

- name: Bootstrap VM if necessary again
include: "{{ item }}"
with_first_found:
- files:
- "{{ platform }}/{{ build_version }}/bootstrap.yaml"
skip: True

- name: Wait for VM SSH
wait_for:
port: 8022
search_regex: SSH

- name: Configure VM
include: "{{ platform }}/{{ build_version }}/configure.yaml"

Expand Down
6 changes: 6 additions & 0 deletions tasks/eos/4.24.6M/bootstrap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
- name: Bootstrap VM
expect:
command: telnet localhost 8888
responses: "{{ expect_responses }}"
timeout: "{{ bootstrap_timeout }}"
22 changes: 22 additions & 0 deletions tasks/eos/4.24.6M/configure.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
- name: reset the connection
meta: reset_connection

- name: Wait for image boot up
pause:
seconds: 100

- arista.eos.eos_config:
src: "{{ image_config_path | default (platform + '/' + build_version + '/config.j2') }}"
save_when: always
become: true
vars:
ansible_user: admin
ansible_ssh_pass: admin
ansible_port: 8022
ansible_network_os: eos
ansible_host_key_checking: false
ansible_become: true
ansible_become_method: enable
ansible_become_pass: admin
ansible_connection: ansible.netcommon.network_cli
18 changes: 18 additions & 0 deletions tasks/eos/4.24.6M/disable_ztp.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
- arista.eos.eos_command:
commands: "zerotouch disable"
become: true
vars:
ansible_user: admin
ansible_password: admin
ansible_port: 8022
ansible_network_os: eos
ansible_host_key_checking: false
ansible_become: true
ansible_become_method: enable
ansible_become_pass: admin
ansible_connection: ansible.netcommon.network_cli

- name: Wait for the network device to reload
wait_for_connection:
delay: 100
15 changes: 15 additions & 0 deletions templates/eos/4.24.6M/config.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
no username admin
hostname {{ hostname }}
dns domain {{ domain_name }}
ip name-server 1.1.1.1

username {{ admin_user }} secret {{ admin_user_password }} privilege 15
username {{ regular_user }} secret {{ regular_user_password }} privilege 1
username zuul privilege 15 nopassword

interface Management 1
ip address dhcp

username zuul ssh-key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDI3XA0A84nUpCr9mfkrDjBdoNFtYMXqXMm2+WsGrOJUA2ESodUDDfTKmsA/xEygdCnj8JfSC3SYhc0uKHVe0RdG20mzntUqD50kB0STFeOHh3ee7FXmMxcLqLlyY9pJkn1V5WOi/D1Lbz8MwRUVBfqufryavwHla/9CPuAtPcut8mTUB0+Rapnv8W3n4dA6PqHNW1tylJUXj6P4trJPnFrdfMaIxc21tfd/QrMM4h90phW3zNILE0qF9UHpQxP0zew/LcD9rc+IhnbgC3DeCQDyiqJOsJRDo58RuwWmQHCF0SfiFQJ4qwrc6TFSJqSdi2aRY0S/vRMbXkD+6Hg2KWQyz6Z6EpY7RARletqJwNnzuuhXr2HSCj5QALe+0U/aUEX+dnydYBX6Nqa+0Rz/qV5aUk4YP1C2/dBCAdbYXPotBT6QBfekE428mJV8Mr7G/M7kwZ8v9WjytyJ8/FYNuekYDWonk6QTwDgQhMTiQI3Yxnu3ID63BL959lfUIv96bsifVI6/D36KTAdFi/dl7Omn5MZ9A5JXA7l+yEJKf4pcPTpQcPbjGSKyaPu0uffEjV9CTr3+VMwzq1uenxGDQ9cT/ud4pEEjwU/ihr6yttouTCvDu9ydrflHljUXxf+X00NW7HkrHnvS43AGnxQzi9g2lTOC9yDlDGbQjmnVjec7w== zuul-executor

enable password {{ enable_password }}
14 changes: 14 additions & 0 deletions templates/eos/4.24.6M/inventory.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
[eos]
{{ hostname }}.{{ domain_name }}

[eos:vars]
ansible_network_os=eos
ansible_connection=local
ansible_host=localhost
ansible_port=8022
ansible_user={{ admin_user }}
ansible_ssh_pass={{ admin_user_password }}
ansible_become=true
ansible_become_method=enable
ansible_become_pass={{ admin_user_password }}
ansible_connection=ansible.netcommon.network_cli
3 changes: 3 additions & 0 deletions templates/eos/4.24.6M/qemu.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/bash

/usr/bin/qemu-system-x86_64 -nographic -m 6144 -smp 2 -enable-kvm -serial telnet:localhost:8888,server,nowait -monitor telnet:localhost:8889,server,nowait -netdev user,id=net0,hostfwd=tcp::8022-:22 -device e1000,netdev=net0 -netdev user,id=net1 -device e1000,netdev=net1 -netdev user,id=net2 -device e1000,netdev=net2 -drive file={{ image_name }}.qcow2,if=ide &
39 changes: 39 additions & 0 deletions vars/eos/4.24.6M/vars.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
expect_responses:
'localhost login: ': 'admin'
'localhost>': enable
'localhost#':
- config
- bash
- copy running-config startup-config
- "\x1d"
'localhost\(config\)#':
- username admin secret admin
- event-handler dhcp-ma1-on-boot
- exit
'localhost\(config-handler-dhcp-ma1-on-boot\)#':
- trigger on-boot
- action bash /mnt/flash/dhcp-ma1-on-boot.sh
- delay 30
- exit
'\[admin@localhost ~\]\$ ':
- sudo dhclient ma1
- |
cat << EOF > /mnt/flash/dhcp-ma1-on-boot.sh
#!/bin/bash

sudo dhclient ma1
ADDRESS=$(ifconfig ma1|grep inet|awk -F " " '{print $2}')
NETMASK=$(ifconfig ma1|grep inet|awk -F " " '{print $4}')
DEFAULT_GW=$(ip route|grep default|awk -F " " '{print $3}')
FastCli -p 15 -c $a"
configure terminal
interface Management1
ip address $(ifconfig ma1|grep inet|awk -F " " '{print $2}') $(ifconfig ma1|grep inet|awk -F " " '{print $4}')
ip route 0.0.0.0 0.0.0.0 $(ip route|grep default|awk -F " " '{print $3}')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why did we replace the variables from above? We should move this logic to lines 26 to 28

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The variables are getting substituted properly, hence removed the variables. I will remove the variable declarations.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if the variables are substituted properly, then why doesn't the commands work as expected?

It looks like you've just move the logic from lines above to here, which is a noop.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry for the typo. The variables are not getting substituted properly. After I used the value directly, instead of the variable, the commands are formed correctly.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets do this, can you revert this change. Set

/bin/bash -ex

Then paste the output of the script. I cannot see why the variables wouldn't work properly

"
EOF
- exit
'telnet>': quit

qemu_command: "/usr/bin/qemu-system-x86_64 -nographic -m 2G -smp 2 -enable-kvm -serial telnet:localhost:8888,server,nowait -monitor telnet:localhost:8889,server,nowait -netdev user,id=net0,hostfwd=tcp::8022-:22 -device e1000,netdev=net0 -netdev user,id=net1 -device e1000,netdev=net1 -netdev user,id=net2 -device e1000,netdev=net2 -drive file=cloned_image,if=ide"