Brent, sorry! Here is what I have working right now.
Michael et al, feel free to comment on this "hack" and let me know what
else could be done to simplify.
---
#-----------------------PLAY 1 ------------------------------------------#
- name: collecting ospf data
hosts: routers
connection: local
gather_facts: no
# note: routers only has two hosts/devices in it. Basically, the two I
want to compare
tasks:
- name: get ospf facts
ospf_facts: device={{inventory_hostname}} interface={{ ospf_interface }}
register: ospf_data
# just a bunch of debug messages displaying some facts on each device
during the run
- name: interface ip addresses used for OSPF peering
debug: msg="local router interface IP address- {{
ospf_data.ofacts.oif_ip }} on {{ ospf_data.ofacts.oif }}"
- name: is ospf active on interface?
debug: msg="ospf active on interface = {{
ospf_data.ofacts.ospf_active_on_intf }}"
- name: process id check
debug: msg="at least one ospf process configurd on router = {{
ospf_data.ofacts.processExists }}"
- name: MTUs of interfaces
debug: msg="MTU = {{ ospf_data.ofacts.oif_mtu }}"
- name: ospf network type
debug: msg="network type = {{ ospf_data.ofacts.network_type }}"
- name: ospf timers on interface
debug: msg="{{ ospf_data.ofacts.timers }}"
- name: interface status
debug: msg="interface status={{
ospf_data.ofacts.interface_status.status }} and line protocol = {{
ospf_data.ofacts.interface_status.line_proto}}"
- name: display neighbors and state
debug: msg="{{ospf_data.ofacts.oif_neighbors}}"
#-----------------------PLAY 2 ------------------------------------------#
# local is just 127.0.0.1, so it runs just once
- name: ospf config validation & automated re-configuration
hosts: local
connection: local
gather_facts: no
#to simplify a bit, using "root" as what the "other" device will be
compared to...10.1.1.110 and 10.1.1.1.120 are both devices from routers in
the first play
vars:
root: "{{ hostvars['10.1.1.110'].inventory_hostname }}"
other: "{{ hostvars['10.1.1.120'].inventory_hostname }}"
# creating new short name variables to simplify the calling of them in this
play. Contents of the vars file is below too.
vars_files:
- vars/simple_vars.yml
tasks:
- debug: msg="{{ root }} mtu = {{ r1_mtu }} && {{ other }} mtu = {{
r2_mtu }}"
- debug: msg="*******MTU mismatch*******"
when: r1_mtu != r2_mtu
- debug: msg="*******MTUs match*********"
when: r1_mtu == r2_mtu
- name: auto re-config of MTU by increasing lower MTU to be equal to
higher MTU value
mtu: dev1={{ r1_ip }} dev2={{ r2_ip }} mtu1={{ r1_mtu }} mtu2={{ r2_mtu
}} int1={{ r1_oif }} int2={{ r2_oif }}
when: r1_mtu != r2_mtu
VARS FILE:
---
r1_mtu: "{{ hostvars[root].ospf_data.ofacts.oif_mtu }}"
r2_mtu: "{{ hostvars[other].ospf_data.ofacts.oif_mtu }}"
r1_ip: "{{ hostvars[root].inventory_hostname }}"
r2_ip: "{{ hostvars[other].inventory_hostname }}"
r1_oif: "{{ hostvars[root].ospf_data.ofacts.oif }}"
r2_oif: "{{ hostvars[other].ospf_data.ofacts.oif }}"
On Sun, Jun 8, 2014 at 11:33 AM, Michael DeHaan <[email protected]> wrote:
> Hmm, if you are trying to build a "how are these various servers
> different" kind of solution in Ansible, I'll say that doesn't really exist
> yet, so what you are going to create if attempting to use ansible as a
> programming language (it's not) may feel a little hackish.
>
>
>
>
>
>
> On Fri, Jun 6, 2014 at 12:21 PM, Brent Langston <[email protected]>
> wrote:
>
>>
>> On Thu, Jun 5, 2014 at 7:52 PM, Jason Edelman <[email protected]>
>> wrote:
>>
>>> Have an alternative solution working now.
>>
>>
>> secrets don't make friends! mind closing the loop by sharing what you
>> came up with?
>>
>> --------
>> Brent
>> --------
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Ansible Project" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>>
>> To post to this group, send email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/ansible-project/CABta7G2H4NognkHLmwyMc-COYQN1D%3DAJ12tD%3D96c1uqwGQNSEA%40mail.gmail.com
>> <https://groups.google.com/d/msgid/ansible-project/CABta7G2H4NognkHLmwyMc-COYQN1D%3DAJ12tD%3D96c1uqwGQNSEA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "Ansible Project" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/ansible-project/SzvQN2zex-E/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/CA%2BnsWgwG9GXCryjASBvmsEum9QnOyLfU8%2Bp%3D7ExuBa%3D8-bk5Vg%40mail.gmail.com
> <https://groups.google.com/d/msgid/ansible-project/CA%2BnsWgwG9GXCryjASBvmsEum9QnOyLfU8%2Bp%3D7ExuBa%3D8-bk5Vg%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/CA%2B_m3%2Bb-G8u0Y5opqNMUy%3DOW7F01pVKiob6sTkQbnkCbBf6nYQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.