以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...