Making Small Command Modules using Ansible

27 views
Skip to first unread message

Ashwajit Bhoutkar

unread,
Jun 11, 2020, 11:25:05 AM6/11/20
to Ansible Project

Hello,

 

I've question related to a scenario which  I can accomplish using Python but would like to achieve the same using Ansible.

 

In the scenario, I first execute "show run int" command to see if it has IP address allocated, if ip is not allocated then a new IP address is allocated to the interface else no action is taken. Finally I again do the “show ip int” command and verify whether the IP is allocated. For the scenario, I’ve used Paramiko library, I’ve made a connect class which gives me the connection object, and I’ve defined small function for various commands and its outputs, these functions used the connection object to run the command on the devices. Is it possible to achieve the same using Ansible?

 

Thank You

 

Kind Regards,

Ashwajit

Sydo Luciani

unread,
Jun 11, 2020, 12:45:55 PM6/11/20
to ansible...@googlegroups.com
Yes, you can use command module to run commands on targets that has python interpreter,
or use raw module if python interpreter is not available on target mashine.
check out example section:

You don't need to worry about the type of ssh client. 
Ansible is going to take care of it, as long as you have proper ansible.cfg configuration file in place.


 
 

--
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 ansible-proje...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/0526ffef-6329-4d5b-89a2-868940cff438o%40googlegroups.com.

Ashwajit Bhoutkar

unread,
Jun 13, 2020, 5:09:41 PM6/13/20
to ansible...@googlegroups.com
Hi,

Thank you for your reply. I'm very much new to ansible and hav been running only raw commands which I've learned from online tutorials. I've made a small modular program in python which uses the paramiko library. Below is the structure of the code which I've written in python to change the ip address of some interfaces (the code has other modules as well which write the results of these executions on excel). In the program, i've created a class to create ssh connection with a server, and then use the connection object in next class to connect to devices and then send commands to my devices and get the relevant outputs.  
I just wanted to know how this functionality can be achieved with the help of ansible? It would be a great help for me if someone could provide me the solution. Thank you in advance for the support.

import paramiko

class connection():
   
    def __init__(self, address, username, password):
        #connection module

    def openShell(self):
        #invoke shell module

    def sendShell(self, command, show="show"):
        #send shell module

    def getdata(self):
        #get shell data module

    def closeConnection(self):
        #close connection

class connectToDevices():

    def __init__(self, var1, var2):
        #connect to jumphost

    def assign_ip(int, address):
        #get existing ip
#comare with provided ip
#assign IP if different else do nothing

    def get_ip(int, address):
        #capture existing ip

Thank You,

Kind Regards,
Ashwajit

Gobi

unread,
Jun 13, 2020, 11:36:32 PM6/13/20
to ansible...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages