-
Notifications
You must be signed in to change notification settings - Fork 351
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'vyos:current' into patch-1
- Loading branch information
Showing
3 changed files
with
214 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,203 @@ | ||
:lastproofread: 2024-03-10 | ||
|
||
.. _vyos-govyos: | ||
|
||
go-vyos | ||
======= | ||
|
||
go-vyos is a Go library designed for interacting with VyOS devices through | ||
their REST API. This documentation is intended to guide you in using go-vyos for | ||
programmatic management of your VyOS devices. | ||
|
||
- `go-vyos Documentation & Source Code on GitHub <https://github.com/ganawaj/go-vyos>`_ | ||
allows you to access and contribute to the library's code. | ||
- `go-vyos on pkg.go.dev <https://pkg.go.dev/github.com/ganawaj/[email protected]/vyos>`_ for detailed instructions | ||
on the installation, configuration, and operation of the go-vyos library. | ||
|
||
|
||
Installation | ||
------------ | ||
|
||
You can install go-vyos: | ||
|
||
.. code-block:: bash | ||
go install "github.com/ganawaj/go-vyos/vyos" | ||
Getting Started | ||
--------------- | ||
|
||
Importing and Disabling TLS Verification | ||
------------------------------------------------- | ||
|
||
.. code-block:: none | ||
import "github.com/ganawaj/go-vyos/vyos" | ||
client := vyos.NewClient(nil).WithToken("AUTH_KEY").WithURL("https://192.168.0.1").Insecure() | ||
Initializing a VyDevice Object | ||
------------------------------ | ||
|
||
.. code-block:: none | ||
import ( | ||
"github.com/ganawaj/go-vyos/vyos" | ||
"os" | ||
) | ||
hostname := os.Getenv('VYDEVICE_HOSTNAME') | ||
port := os.Getenv('VYDEVICE_PORT') | ||
url := fmt.Sprintf("https://%s:%s", hostname, port) | ||
apikey := os.Getenv('VYDEVICE_APIKEY') | ||
verify_ssl := os.Getenv('VYDEVICE_VERIFY_SSL') | ||
client := vyos.NewClient(nil).WithToken(apikey).WithURL(url) | ||
if verify_ssl == "false" { | ||
client = client.Insecure() | ||
} | ||
Using go-vyos | ||
---------------- | ||
|
||
Configure, then Set | ||
^^^^^^^^^^^^^^^^^^^^^^^^ | ||
|
||
.. code-block:: none | ||
out, resp, err := c.Conf.Set(ctx, "interfaces ethernet eth0 address 192.168.1.1/24") | ||
if err != nil { | ||
panic("Error: %v", err) | ||
} | ||
fmt.Println(out.Success) | ||
Show a Single Object Value | ||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
|
||
.. code-block:: none | ||
out, resp, err := c.Show.Do(ctx, "interfaces dummy dum1 address") | ||
if err != nil { | ||
panic("Error: %v", err) | ||
} | ||
fmt.Println(out.Success) | ||
fmt.Printf("Data: %v\n", out.Data) | ||
Configure, then Show Object | ||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
|
||
.. code-block:: none | ||
out, resp, err := c.Conf.Get(ctx, "interfaces dummy dum1", nil) | ||
if err != nil { | ||
panic("Error: %v", err) | ||
} | ||
fmt.Println(out.Success) | ||
fmt.Printf("Data: %v\n", out.Data) | ||
Configure, then Show Multivalue Object | ||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
|
||
.. code-block:: none | ||
options := RetrieveOptions{ | ||
Multivalue: true, | ||
} | ||
out, resp, err := c.Conf.Get(ctx, "interfaces dummy dum1", options) | ||
if err != nil { | ||
panic("Error: %v", err) | ||
} | ||
fmt.Println(out.Success) | ||
Configure, then Delete Object | ||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
|
||
.. code-block:: none | ||
out, resp, err := c.Conf.Delete(ctx, "interfaces dummy dum1") | ||
if err != nil { | ||
panic("Error: %v", err) | ||
} | ||
fmt.Println(out.Success) | ||
Configure, then Save | ||
^^^^^^^^^^^^^^^^^^^^^^^^ | ||
|
||
.. code-block:: none | ||
out, resp, err := c.Conf.Save(ctx, "") | ||
if err != nil { | ||
panic("Error: %v", err) | ||
} | ||
fmt.Println(out.Success) | ||
Configure, then Save File | ||
------------------------- | ||
|
||
.. code-block:: none | ||
out, resp, err := c.Conf.Save(ctx, "/config/test300.config") | ||
if err != nil { | ||
panic("Error: %v", err) | ||
} | ||
fmt.Println(out.Success) | ||
Show Object | ||
^^^^^^^^^^^^^^ | ||
|
||
.. code-block:: none | ||
out, resp, err := c.Show.Do(ctx, "system image") | ||
if err != nil { | ||
panic("Error: %v", err) | ||
} | ||
fmt.Println(out.Success) | ||
fmt.Printf("Data: %v\n", out.Data) | ||
Generate Object | ||
^^^^^^^^^^^^^^^^ | ||
|
||
.. code-block:: none | ||
out, resp, err := c.Generate.Do(ctx, "pki wireguard key-pair") | ||
if err != nil { | ||
panic("Error: %v", err) | ||
} | ||
fmt.Println(out.Success) | ||
fmt.Printf("Data: %v\n", out.Data) | ||
Reset Object | ||
^^^^^^^^^^^^^^ | ||
|
||
.. code-block:: none | ||
out, resp, err := c.Reset.Do(ctx, "ip bgp 192.0.2.11") | ||
if err != nil { | ||
panic("Error: %v", err) | ||
} | ||
fmt.Println(out.Success) | ||
fmt.Printf("Data: %v\n", out.Data) | ||
Configure, then Load File | ||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
|
||
.. code-block:: none | ||
out, resp, err := c.ConfigFile.Load(ctx, "/config/test300.config") | ||
.. _go-vyos: https://github.com/ganawaj/go-vyos |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters