diff options
| -rw-r--r-- | docs/automation/index.rst | 2 | ||||
| -rw-r--r-- | docs/automation/vyos-pyvyos.rst | 134 | 
2 files changed, 136 insertions, 0 deletions
| diff --git a/docs/automation/index.rst b/docs/automation/index.rst index dd7b596a..22414cca 100644 --- a/docs/automation/index.rst +++ b/docs/automation/index.rst @@ -13,7 +13,9 @@ VyOS Automation     vyos-api     vyos-ansible     vyos-napalm +   vyos-pyvyos     vyos-netmiko     vyos-salt     command-scripting     cloud-init +    diff --git a/docs/automation/vyos-pyvyos.rst b/docs/automation/vyos-pyvyos.rst new file mode 100644 index 00000000..fba1e0c1 --- /dev/null +++ b/docs/automation/vyos-pyvyos.rst @@ -0,0 +1,134 @@ +:lastproofread: 2023-12-15 + +.. _vyos-pyvyos: + +PyVyOS +====== + +PyVyOS is a Python library for interacting with VyOS devices via their API.  +This documentation guides you on using PyVyOS to manage your VyOS devices programmatically.  +The complete PyVyOS documentation is available on [Read the Docs](https://pyvyos.readthedocs.io/en/latest/),  +and the library can be found on [GitHub](https://github.com/robertoberto/pyvyos)  +and [PyPI](https://pypi.org/project/pyvyos/). + +Installation +------------ + +You can install PyVyOS using pip: + +.. code-block:: bash + +    pip install pyvyos + +Getting Started +--------------- + +### Importing and Disabling Warnings for verify=False + +.. code-block:: none + +    import urllib3 +    urllib3.disable_warnings() + +### Using API Response Class + +.. code-block:: none + +    @dataclass +    class ApiResponse: +        status: int +        request: dict +        result: dict +        error: str + +### Initializing a VyDevice Object + +.. code-block:: none + +    from dotenv import load_dotenv +    load_dotenv() + +    hostname = os.getenv('VYDEVICE_HOSTNAME') +    apikey = os.getenv('VYDEVICE_APIKEY') +    port = os.getenv('VYDEVICE_PORT') +    protocol = os.getenv('VYDEVICE_PROTOCOL') +    verify_ssl = os.getenv('VYDEVICE_VERIFY_SSL') + +    verify = verify_ssl.lower() == "true" if verify_ssl else True  + +    device = VyDevice(hostname=hostname, apikey=apikey, port=port, protocol=protocol, verify=verify) + +Using PyVyOS +------------ + +### Configure, then Set + +.. code-block:: none + +    response = device.configure_set(path=["interfaces", "ethernet", "eth0", "address", "192.168.1.1/24"]) +    if not response.error: +        print(response.result) + +### Configure, then Show a Single Object Value + +.. code-block:: none + +    response = device.retrieve_return_values(path=["interfaces", "dummy", "dum1", "address"]) +    print(response.result) + +### Configure, then Show Object + +.. code-block:: none + +    response = device.retrieve_show_config(path=[]) +    if not response.error: +        print(response.result) + +### Configure, then Delete Object + +.. code-block:: none + +    response = device.configure_delete(path=["interfaces", "dummy", "dum1"]) + +### Configure, then Save + +.. code-block:: none + +    response = device.config_file_save() + +### Configure, then Save File + +.. code-block:: none + +    response = device.config_file_save(file="/config/test300.config") + +### Show Object + +.. code-block:: none + +    response = device.show(path=["system", "image"]) +    print(response.result) + +### Generate Object + +.. code-block:: none + +    randstring = ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(20)) +    keyrand =  f'/tmp/key_{randstring}' +    response = device.generate(path=["ssh", "client-key", keyrand]) + +### Reset Object + +.. code-block:: none + +    response = device.reset(path=["conntrack-sync", "internal-cache"]) +    if not response.error: +        print(response.result) + +### Configure, then Load File + +.. code-block:: none + +    response = device.config_file_load(file="/config/test300.config") + +. _pyvyos: https://github.com/robertoberto/pyvyos
\ No newline at end of file | 
