Abstract language to describe network deployments?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP












6















Is there any more or less standard/spec that is, vendor neutral, for network configuration language? Say, a VPC with networks and virtual machines would become an XML or JSON file.



Something like,



<deployment>
<vpc name="Test">
<appliances>
<vm id="1" />
</appliances>
</vpc>
</deployment>









share|improve this question






















  • No, not really. The problem is that not every vendor supports everything, and they all do it differently. This has been a goal for a long time, but it has proved to be very difficult. In any case, VPCs and VMs are off-topic here.

    – Ron Maupin
    Feb 5 at 15:28











  • Do you want to document the network or use this as a data source to automate network configuration?

    – JFL
    Feb 5 at 17:16











  • @JFL ideally, both

    – J. Doe
    Feb 5 at 17:31















6















Is there any more or less standard/spec that is, vendor neutral, for network configuration language? Say, a VPC with networks and virtual machines would become an XML or JSON file.



Something like,



<deployment>
<vpc name="Test">
<appliances>
<vm id="1" />
</appliances>
</vpc>
</deployment>









share|improve this question






















  • No, not really. The problem is that not every vendor supports everything, and they all do it differently. This has been a goal for a long time, but it has proved to be very difficult. In any case, VPCs and VMs are off-topic here.

    – Ron Maupin
    Feb 5 at 15:28











  • Do you want to document the network or use this as a data source to automate network configuration?

    – JFL
    Feb 5 at 17:16











  • @JFL ideally, both

    – J. Doe
    Feb 5 at 17:31













6












6








6








Is there any more or less standard/spec that is, vendor neutral, for network configuration language? Say, a VPC with networks and virtual machines would become an XML or JSON file.



Something like,



<deployment>
<vpc name="Test">
<appliances>
<vm id="1" />
</appliances>
</vpc>
</deployment>









share|improve this question














Is there any more or less standard/spec that is, vendor neutral, for network configuration language? Say, a VPC with networks and virtual machines would become an XML or JSON file.



Something like,



<deployment>
<vpc name="Test">
<appliances>
<vm id="1" />
</appliances>
</vpc>
</deployment>






network architecture






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Feb 5 at 14:02









J. DoeJ. Doe

1383




1383












  • No, not really. The problem is that not every vendor supports everything, and they all do it differently. This has been a goal for a long time, but it has proved to be very difficult. In any case, VPCs and VMs are off-topic here.

    – Ron Maupin
    Feb 5 at 15:28











  • Do you want to document the network or use this as a data source to automate network configuration?

    – JFL
    Feb 5 at 17:16











  • @JFL ideally, both

    – J. Doe
    Feb 5 at 17:31

















  • No, not really. The problem is that not every vendor supports everything, and they all do it differently. This has been a goal for a long time, but it has proved to be very difficult. In any case, VPCs and VMs are off-topic here.

    – Ron Maupin
    Feb 5 at 15:28











  • Do you want to document the network or use this as a data source to automate network configuration?

    – JFL
    Feb 5 at 17:16











  • @JFL ideally, both

    – J. Doe
    Feb 5 at 17:31
















No, not really. The problem is that not every vendor supports everything, and they all do it differently. This has been a goal for a long time, but it has proved to be very difficult. In any case, VPCs and VMs are off-topic here.

– Ron Maupin
Feb 5 at 15:28





No, not really. The problem is that not every vendor supports everything, and they all do it differently. This has been a goal for a long time, but it has proved to be very difficult. In any case, VPCs and VMs are off-topic here.

– Ron Maupin
Feb 5 at 15:28













Do you want to document the network or use this as a data source to automate network configuration?

– JFL
Feb 5 at 17:16





Do you want to document the network or use this as a data source to automate network configuration?

– JFL
Feb 5 at 17:16













@JFL ideally, both

– J. Doe
Feb 5 at 17:31





@JFL ideally, both

– J. Doe
Feb 5 at 17:31










4 Answers
4






active

oldest

votes


















9














YANG is the answer here. To quote from RFC8345, which defines YANG:




This document defines an abstract (generic, or base) YANG data
model for network/service topologies and inventories. The data
model serves as a base model that is augmented with
technology-specific details in other, more specific topology and
inventory data models.




Protocols like NETCONF can use YANG for representations of network configurations.






share|improve this answer






























    3














    Hashicorp's Terraform has a vendor-neutral (but not -agnostic) configuration language. AWS VPCs look like:



    resource "aws_vpc" "Test" 
    cidr_block = "10.0.0.0/16"
    instance_tenancy = "dedicated"

    tags =
    Name = "Test"







    share|improve this answer






























      2














      Ansible can be used to build (part of) a network as code.
      It uses YAML syntax and can read JSON.



      There's existing ansible roles for major vendor's equipment's, and you can build your own roles.



      But existing roles are not always up to date and writing, and maintaining, your own can be time consuming.






      share|improve this answer






























        2














        For AWS VPCs specifically, you can use CloudFormation to generate a "configuration" file, which can be used to recreate the VPC and all the related components. I believe it's in JSON format.



        For networks in general, there is no such thing. Figure out how to do it, and you can retire comfortably.






        share|improve this answer






















          Your Answer








          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "496"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          noCode: true, onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fnetworkengineering.stackexchange.com%2fquestions%2f56638%2fabstract-language-to-describe-network-deployments%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          4 Answers
          4






          active

          oldest

          votes








          4 Answers
          4






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          9














          YANG is the answer here. To quote from RFC8345, which defines YANG:




          This document defines an abstract (generic, or base) YANG data
          model for network/service topologies and inventories. The data
          model serves as a base model that is augmented with
          technology-specific details in other, more specific topology and
          inventory data models.




          Protocols like NETCONF can use YANG for representations of network configurations.






          share|improve this answer



























            9














            YANG is the answer here. To quote from RFC8345, which defines YANG:




            This document defines an abstract (generic, or base) YANG data
            model for network/service topologies and inventories. The data
            model serves as a base model that is augmented with
            technology-specific details in other, more specific topology and
            inventory data models.




            Protocols like NETCONF can use YANG for representations of network configurations.






            share|improve this answer

























              9












              9








              9







              YANG is the answer here. To quote from RFC8345, which defines YANG:




              This document defines an abstract (generic, or base) YANG data
              model for network/service topologies and inventories. The data
              model serves as a base model that is augmented with
              technology-specific details in other, more specific topology and
              inventory data models.




              Protocols like NETCONF can use YANG for representations of network configurations.






              share|improve this answer













              YANG is the answer here. To quote from RFC8345, which defines YANG:




              This document defines an abstract (generic, or base) YANG data
              model for network/service topologies and inventories. The data
              model serves as a base model that is augmented with
              technology-specific details in other, more specific topology and
              inventory data models.




              Protocols like NETCONF can use YANG for representations of network configurations.







              share|improve this answer












              share|improve this answer



              share|improve this answer










              answered Feb 5 at 16:44









              Teun VinkTeun Vink

              11.7k53154




              11.7k53154





















                  3














                  Hashicorp's Terraform has a vendor-neutral (but not -agnostic) configuration language. AWS VPCs look like:



                  resource "aws_vpc" "Test" 
                  cidr_block = "10.0.0.0/16"
                  instance_tenancy = "dedicated"

                  tags =
                  Name = "Test"







                  share|improve this answer



























                    3














                    Hashicorp's Terraform has a vendor-neutral (but not -agnostic) configuration language. AWS VPCs look like:



                    resource "aws_vpc" "Test" 
                    cidr_block = "10.0.0.0/16"
                    instance_tenancy = "dedicated"

                    tags =
                    Name = "Test"







                    share|improve this answer

























                      3












                      3








                      3







                      Hashicorp's Terraform has a vendor-neutral (but not -agnostic) configuration language. AWS VPCs look like:



                      resource "aws_vpc" "Test" 
                      cidr_block = "10.0.0.0/16"
                      instance_tenancy = "dedicated"

                      tags =
                      Name = "Test"







                      share|improve this answer













                      Hashicorp's Terraform has a vendor-neutral (but not -agnostic) configuration language. AWS VPCs look like:



                      resource "aws_vpc" "Test" 
                      cidr_block = "10.0.0.0/16"
                      instance_tenancy = "dedicated"

                      tags =
                      Name = "Test"








                      share|improve this answer












                      share|improve this answer



                      share|improve this answer










                      answered Feb 5 at 21:44









                      Jacob KrallJacob Krall

                      1313




                      1313





















                          2














                          Ansible can be used to build (part of) a network as code.
                          It uses YAML syntax and can read JSON.



                          There's existing ansible roles for major vendor's equipment's, and you can build your own roles.



                          But existing roles are not always up to date and writing, and maintaining, your own can be time consuming.






                          share|improve this answer



























                            2














                            Ansible can be used to build (part of) a network as code.
                            It uses YAML syntax and can read JSON.



                            There's existing ansible roles for major vendor's equipment's, and you can build your own roles.



                            But existing roles are not always up to date and writing, and maintaining, your own can be time consuming.






                            share|improve this answer

























                              2












                              2








                              2







                              Ansible can be used to build (part of) a network as code.
                              It uses YAML syntax and can read JSON.



                              There's existing ansible roles for major vendor's equipment's, and you can build your own roles.



                              But existing roles are not always up to date and writing, and maintaining, your own can be time consuming.






                              share|improve this answer













                              Ansible can be used to build (part of) a network as code.
                              It uses YAML syntax and can read JSON.



                              There's existing ansible roles for major vendor's equipment's, and you can build your own roles.



                              But existing roles are not always up to date and writing, and maintaining, your own can be time consuming.







                              share|improve this answer












                              share|improve this answer



                              share|improve this answer










                              answered Feb 5 at 14:20









                              JFLJFL

                              11.4k11339




                              11.4k11339





















                                  2














                                  For AWS VPCs specifically, you can use CloudFormation to generate a "configuration" file, which can be used to recreate the VPC and all the related components. I believe it's in JSON format.



                                  For networks in general, there is no such thing. Figure out how to do it, and you can retire comfortably.






                                  share|improve this answer



























                                    2














                                    For AWS VPCs specifically, you can use CloudFormation to generate a "configuration" file, which can be used to recreate the VPC and all the related components. I believe it's in JSON format.



                                    For networks in general, there is no such thing. Figure out how to do it, and you can retire comfortably.






                                    share|improve this answer

























                                      2












                                      2








                                      2







                                      For AWS VPCs specifically, you can use CloudFormation to generate a "configuration" file, which can be used to recreate the VPC and all the related components. I believe it's in JSON format.



                                      For networks in general, there is no such thing. Figure out how to do it, and you can retire comfortably.






                                      share|improve this answer













                                      For AWS VPCs specifically, you can use CloudFormation to generate a "configuration" file, which can be used to recreate the VPC and all the related components. I believe it's in JSON format.



                                      For networks in general, there is no such thing. Figure out how to do it, and you can retire comfortably.







                                      share|improve this answer












                                      share|improve this answer



                                      share|improve this answer










                                      answered Feb 5 at 16:33









                                      Ron TrunkRon Trunk

                                      37.1k33475




                                      37.1k33475



























                                          draft saved

                                          draft discarded
















































                                          Thanks for contributing an answer to Network Engineering Stack Exchange!


                                          • Please be sure to answer the question. Provide details and share your research!

                                          But avoid


                                          • Asking for help, clarification, or responding to other answers.

                                          • Making statements based on opinion; back them up with references or personal experience.

                                          To learn more, see our tips on writing great answers.




                                          draft saved


                                          draft discarded














                                          StackExchange.ready(
                                          function ()
                                          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fnetworkengineering.stackexchange.com%2fquestions%2f56638%2fabstract-language-to-describe-network-deployments%23new-answer', 'question_page');

                                          );

                                          Post as a guest















                                          Required, but never shown





















































                                          Required, but never shown














                                          Required, but never shown












                                          Required, but never shown







                                          Required, but never shown

































                                          Required, but never shown














                                          Required, but never shown












                                          Required, but never shown







                                          Required, but never shown






                                          Popular posts from this blog

                                          How to check contact read email or not when send email to Individual?

                                          Displaying single band from multi-band raster using QGIS

                                          How many registers does an x86_64 CPU actually have?