confd模板配置說明(變數 函式和語法)

2021-10-06 19:34:24 字數 1981 閱讀 4204

以confd和etcd為例:

1、confd通過配置檔案,確定監聽的key,需要更新的檔案,例,myconfig.toml:

[template]

src = "nginx.tmpl" <-- confd更新的模板檔案

dest = "/home/root/nginx/conf/nginx.conf" <-- 模板檔案更新完畢後,替換的目標檔案

keys = [ <-- confd 監聽的key

"/***"

]reload_cmd = "/home/test.sh" <-- 替換目標檔案後執行的命令

指令碼中如何啟動confd,例:/usr/bin/confd -watch -backend etcd -node -node -node

1、模板內內嵌的語法支援,全部需要加}來標記

2、在模板檔案內,. 代表了當前變數,即在非迴圈體內,.就代表了傳入的那個變數

3、模板內的變數定義方法:},例如:

}

假設我們定義了乙個結構體:

type article struct

那麼我們在模板內可以通過.articlecontent和.articleid的方式來獲取並把變數的內容渲染到模板內。

}}

4、with語句建立乙個封閉的作用域,在其範圍內,可以使用.action,而與外面的.無關,只與with的引數有關:

} 此時的點 . 就是arg

}

5、迴圈依靠range語句

}}

id:} ip:

}}

} key:}}

ipaddress:

} username:

}}

7、confd一些常用的函式

get返回匹配的「鍵-值」對

gets返回所有匹配的「鍵-值」對

getv返回匹配「鍵」的「值」

getvs返回所有匹配「鍵」的「值」

ls返回指定路徑下的所有子鍵

lsdir返回指定路徑下所有具有子目錄的子鍵

dir返回指定「鍵」的父目錄

exist檢查指定的「鍵」是否存在

base返回路徑的最後乙個元素

另有一些go函式的別名,具體用法看文件

join

split

replace

toupper

tolower

getenv

datatime

乙個nginx 模板的例子:

}// 獲取指定/***-1.1.1.1鍵下所有子健

}// 迴圈取出list中的子健

}// 判斷子健不等於"mesproxy"

}// 定義變數等於/***-1.1.1.1/鍵

}// 判斷epg_key中子健存在

server }:

8080 max_fails=5;

// }存放$epg_key中的子健,"2.2.2.2"是預設值}}

}}

參考文件:

— >官方文件

confd 模板自動生成配置,安裝使用介紹

mkdir p usr local confd wget confd releases download v 0.14.0 confd 0.14.0 linux amd64建立模板資料夾 templates 和 配置資料夾 conf.d confd預設使用的是這兩個目錄檔名 mkdir p usr ...

C 模板 函式模板基本 說明

c 模板是個很重要的東西,但是現實中,我幾乎沒寫過模板,幾乎都快忘記這個東西,前兩天學習了,意識到這個問題,主要是準備學習c 11,初步學習,舉步維艱,發現不會模板學習有些費勁,覺得很難理解,所以今天來說明下函式模板最基本說明,其實模板挺複雜的,應該,我只看了一點都覺的很繞,還有很多坑,估計這個寫本...

Mac機配置環境變數說明

mac配置環境變數的地方 1,etc profile 建議不修改這個檔案 全域性 公有 配置,不管是哪個使用者,登入時都會讀取該檔案。2,etc bashrc 一般在這個檔案中新增系統級環境變數 全域性 公有 配置,bash shell執行時,不管是何種方式,都會讀取此檔案。3,bash profi...