Go에서 gRPC를 사용하여 IOS XR에 config 적용

저번 gRPC를 사용하여 IOS XR에서 Show 명령을 실행하는 방법을 소개했다.
이번에는 gRPC를 사용하여 config를 투입하는 방법을 소개합니다.
지난번과 마찬가지로 로그인 정보를 메타데이터로 상하문에 삽입합니다.
	md := metadata.Pairs(
		"username", "root",
		"password", "password",
	)

	ctx := metadata.NewOutgoingContext(context.Background(), md)
또한 투입할 명령을 문자열로 미리 준비하여 배열
	clis := [...]string{
		"interface GigabitEthernet0/0/0/1",
		"interface GigabitEthernet0/0/0/1 ipv4 address 172.16.1.254 255.255.255.0",
	}
이후 지난번client으로 제작된 구조만 바꾸면 된다
	conn, _ := grpc.Dial("192.168.1.10:50051", grpc.WithInsecure())
	client := dialin.NewGRPCConfigOperClient(conn)
준비된 명령 수만 투입하면 됩니다.
	for _, cli := range clis {
		reply, _ := client.CliConfig(ctx, &dialin.CliConfigArgs{Cli: cli})
		if reply.Errors != "" {
			fmt.Println(reply.Errors)
		}
	}
전체상은 다음과 같다.
package main

import (
	"context"
	"fmt"

	"google.golang.org/grpc"
	"google.golang.org/grpc/metadata"

	dialin "github.com/cisco/bigmuddy-network-telemetry-proto/proto_go/mdt_grpc_dialin"
)

func main() {

	md := metadata.Pairs(
		"username", "root",
		"password", "password",
	)

	clis := [...]string{
		"interface GigabitEthernet0/0/0/1",
		"interface GigabitEthernet0/0/0/1 ipv4 address 172.16.1.254 255.255.255.0",
	}

	conn, _ := grpc.Dial("192.168.1.10:50051", grpc.WithInsecure())
	client := dialin.NewGRPCConfigOperClient(conn)

	ctx := metadata.NewOutgoingContext(context.Background(), md)

	for _, cli := range clis {
		reply, _ := client.CliConfig(ctx, &dialin.CliConfigArgs{Cli: cli})
		if reply.Errors != "" {
			fmt.Println(reply.Errors)
		}
	}

}
지금까지 gRPC 기반 IOS XR의 조작을 3차례 소개했는데, 이렇게 되면 아무래도 gRPC의 기초를 파악할 수 있을 것 같다.

좋은 웹페이지 즐겨찾기