翻譯至:https://github.com/hashicorp/consul-templategit
Consul-Template配置文件是使用[HashiCorp Configuration Language (HCL)]編寫的.這意味着```Consul Template是和JSON兼容的,查看更多信息請查看 [HCL 規範](https:#github.com/hashicorp/hcl)github
consul = "127.0.0.1:8500"redis
#這是要鏈接的Consul Agent的地址.默認爲127.0.0.1:8500.這是Consul的默認綁定地址和端口.不建議直接與 Consul的 Server直接進行交互,請與本地的Consul Agent進行交互.這樣作是緣由是本地agent能夠複用與server的鏈接.減小HTTP的鏈接數.另外這個地址更好記.服務器
token = "abcd1234"app
# 這是用於鏈接Consul的ACL token. 若是你的集羣未啓用就不須要設置.這個選項也能夠經過環境變量 CONSUL_TOKEN 來進行設置分佈式
reload_signal = "SIGHUP"ide
# 這是監聽出發reload事件的信號,默認值爲SIGHUP.將這個值設置爲空將引發 CT ,從而不監聽reload事件函數
dump_signal = "SIGQUIT"命令行
# 這是監聽出發core dump事件的信號,默認值爲SIGQUIT.將這個值設置爲空將引發 CT ,從而不監聽core dump信號翻譯
kill_signal = "SIGINT"
# 這是監聽出發graceful stop事件的信號,默認值爲SIGINT.將這個值設置爲空將引發 CT ,從而不監聽graceful stop信號
retry = "10s"
# 這是鏈接Consul的重試時間.Consul Template是高容錯的設計.這意味着,出現失敗他不會退出.而按照分佈式系統的慣例進行指數補償和重試來等待集羣恢復.
max_stale = "10m"
#這是容許陳舊數據的最大時間.Consul默認只有leader對請求進行相應.全部對follower的請求將被轉發給leader.在有大量請求的大型集羣中,這顯得不夠有擴展性.因此這個選項容許任何follower響應查詢,只要最後複製的數據在這個範圍內.數值越高,越減小集羣負載,,但返回的多是過時的數據.
log_level = "warn"
# 配置日誌級別。 若是在Consul Template中發現錯誤,請啓用debug調試日誌,以便咱們幫助肯定問題;也能夠經過命令行指定。
pid_file = "/path/to/pid"
# Consul Template進程的進程ID的PID文件的路徑。 須要發送自定義信號到進程時使用。
wait = "5s:10s"
#這是一個靜止定時器,他定義了在模板渲染以前等待集羣達到一致狀態的最小和最大時間.這對於一些變化較大的系統中比較有用,能夠減小模板渲染的次數
# 這部分配置請求的基本的權限驗證信息
auth {
enabled = true
username = "test"
password = "test"
}
# 這部分配置鏈接到Consul服務器的SSL信息.
ssl {
enabled = true # 使用SSL須要先打開這個開關
verify = true #啓用ssl認證,默認設置和true,啓用時它會檢查全局的CA鏈以確認證書是否有效,若是是自簽證書,須要把ssl認證禁用掉,即設置爲false
cert = "/path/to/client/cert"
key = "/path/to/client/key"
#用於認證的證書存放位置,若是隻提供證書,須要是由證書和key轉化的X509證書,若是同時指定了證書和Key,conul template會自動將其結合組成一個X509證書
# This is the path to the certificate authority to use as a CA. This isuseful for self-signed certificates or for organizations using their own internal certificate authority.
ca_cert = "/path/to/ca"
#這是證書頒發機構用做CA的路徑,適用於自簽名證書或使用其自身內部證書頒發機構的組織
}
# 設置鏈接到syslog服務器的配置,用於日誌記錄
syslog {
enabled = true # 打開開關
facility = "LOCAL5" # 設備名稱
}
# 此段定義de-duplication模式的配置
deduplicate {
enabled = true
#啓用de-duplication模式.指定其它相關選項也啓用de-duplication模式.
prefix = "consul-template/dedup/"
# 存儲de-duplication模板預渲染的kv值的目錄前綴
}
# 此段用於定義exec模式的配置
exec {
command = "/usr/bin/app"
#這是經過子進程執行的命令。每一個Consul模板只能有一個命令。
splay = "5s" #在殺死命令以前,這是一個隨機的等待狀態。缺省值爲0(不等待),但大型羣集應考慮設置splay值以防止發生數據更改時同時從新加載全部子進程。當此值設置爲非零時,Consul模板將在從新加載或終止子進程以前等待一段不大於splay值隨機時間。
#此部分爲子進程環境變量相關配置
env {
pristine = false #這指定了子進程是否應該繼承父進程的環境變量。默認狀況下,子進程有權訪問父進程的環境變量。將它設置爲true時只會將`custom_env`中指定的值發送給子進程。
custom = ["PATH=$PATH:/etc/myapp/bin"] #傳到子進程的運行時環境中的自定義環境變量。若是自定義環境變量與系統環境變量共享其名稱,則自定義環境變量優先。即便指定pristine, whitelist和blacklist,此選項中的全部值都會被提供給子進程。
whitelist = ["CONSUL_*"] #指定要暴露給子進程的環境變量白名單。若是指定,只有那些與給定模式匹配的環境變量纔會暴露給子進程。這些字符串使用Go的glob函數進行匹配,所以容許使用通配符。
blacklist = ["VAULT_*"] #指定要在暴露給子進程的環境變量黑名單。若是指定,任何符合給定模式的環境變量都不會暴露給子進程,即便它們已被列入白名單。此選項中的值優先於白名單中的值。這些字符串使用Go的glob函數進行匹配,所以容許使用通配符。
}
reload_signal = "SIGUSR1"
#這定義了當監視模板發生更改時將發送到子進程的信號。信號只會在過程開始後才被髮送,而且只有在全部相關模板已經被渲染至少一次後纔會開始該過程。缺省值是「」(空或零),它告訴Consul模板重啓子進程而不是發送信號。由於有些應用程序不能很好地加載配置文件
kill_signal = "SIGINT"
#這定義了當Consul模板正常關閉時發送給子進程的信號。應用程序應該開始優雅的清理。若是應用程序在`kill_timeout`以前沒有終止,它將被強制終止(「kill -9」)。缺省值是「SIGTERM」。
kill_timeout = "2s"
#這定義了當Consul模板退出時等待子進程正常終止的時間。在此特定時間以後,子進程將被強制殺死(有效地「殺死-9」)。默認值是「30s」
}
# 這部分定義了對模板的配置,和其餘配置塊不一樣.這部分能夠針對不一樣模板配置屢次.也能夠在CLI命令頭髮直接進行配置
template {
source = "/path/on/disk/to/template.ctmpl"
# 這是輸入模板的配置文件路徑,若是不使用contents選項的話必定要配置這一項
destination = "/path/on/disk/where/template/will/render.txt"
# 指定被渲染模板的路徑,若是父目錄不存在,Consul Template會自動建立,除非把create_dest_dirs設置爲false.
create_dest_dirs = true
# 默認爲true,當目標路徑的父目錄不存在時自動建立
contents = "{{ keyOrDefault \"service/redis/maxconns@east-aws\" \"5\" }}"
#該選項容許將模板的內容嵌入到配置文件中,而不是將「源」路徑提供給模板文件。 這對於短模板頗有用。 這個選項與`source`選項是互斥的。
command = "restart service foo"
# 模板被渲染時運行的命令,爲可選參數。只有在生成的模板發生變化時,該命令纔會運行。 該命令必須在30秒內返回(可配置),而且必須具備成功的退出代碼,Consul Template不能替代進程監視或者init 系統
command_timeout = "60s"
# 這是最大的等待命令返回的時間,默認是30秒
# 訪問不存在的結構或映射field/key退出並報錯。當訪問的字段不存在時,默認打印「<no value>」。 建議將其設置爲「true」
error_on_missing_key = false
perms = 0600
# 指定被渲染文件的權限,若是沒有指定,consul template會匹配這個目錄下的其它文件,若是爲空目錄,則會將被渲染的文件權限設置爲644
backup = true
# 在渲染文件前會先將原文件備份,可用於誤操做的回退策略
left_delimiter = "{{"
right_delimiter = "}}"
# 指定模板的分隔符,默認爲{{和}},可是有些模板指定其它的分隔符可能更合適,避免與被渲染的文件產生衝突
wait = "2s:6s"
# 指定等待新模板渲染到磁盤和觸發腳本的最大和最小時間,格式爲 `minimum(:maximum),以':'分隔. 若是沒有指定最大值,則將其設置爲最小值的4倍,這是一個帶有單位後綴(「5s」)的數字時間。 沒有默認值。模板的等待值比全局配置的等待時間具備更高的優先級。
}