CoreDNS实战(四)-编译安装External Plugins

External Plugins概述

coredns官方对于插件的分类基本可以分为三种:Plugins、External Plugins和其他。其中Plugins一般都会被默认编译到coredns的预编译版本中,而External Plugins则不会。官方的文档对外部插件的定义有着明确的解释,主要要求大概是有用、高效、符合标准、文档齐全、通过测试等。

编译插件

官方给出了一个详细的文档说明,编译插件基本可以分为修改源码和修改编译的配置文件这两种方式,这里我们采用简单高效的修改配置文件的方式进行测试。 

在我们前面下载的官方源码中,有一个plugin的目录,里面是各种插件的安装包,同时还有一个plugin.cfg的文件,里面列出了会编译到coredns中的插件,

 [/home/coredns]# tail plugin.cfg
 secondary:secondary
 etcd:etcd
 loop:loop
 forward:forward
 grpc:grpc
 erratic:erratic
 whoami:whoami
 on:github.com/coredns/caddy/onevent
 sign:sign
 dump:github.com/miekg/dump

例如这里我们需要额外多添加一个dump插件到coredns中,只需要在plugin.cfg中加入插件的名称和地址

 dump:github.com/miekg/dump

对于在plugin目录下已经存在的插件,则可以直接写成plugin中的目录名:

 sign:sign

然后我们开始编译

 [/home/coredns]# go get github.com/miekg/dump
 go: downloading github.com/miekg/dump v0.0.0-20201002053733-d877fdb82251
 go get: added github.com/miekg/dump v0.0.0-20201002053733-d877fdb82251
 [/home/coredns]# go generate
 [/home/coredns]# go build
 [/home/coredns]# make

验证插件

接下来只要检验生成的coredns二进制文件中是否包含dump插件即可确认是否顺利编译完成:

扫描二维码关注公众号,回复: 17131136 查看本文章

最后我们在配置文件中启动dump模块并进行测试,可以看到一条查询会出现两条日志,分别对应的是dump插件生成的日志和log插件生成的日志(带INFO)

猜你喜欢

转载自blog.csdn.net/ygq13572549874/article/details/134818514