Nomad 的參數設定有三種方式: Environment Variables、Command-line Options與Configuration Files.
Environment Variables: 設定在OS環境變數裡,Nomad會讀取環境變數來做為預設值。
Command-line Option: 參數透過指令設定,當所需的設定越來越多時,會不容易閱讀與維護。
Configuration Files: 支援HCL與JSON,設定檔結構化,容易閱讀與維護。
今天會使用configuration file 的方式來設定,在開始前我們先新增三個目錄給Consul使用,分別是conf, logs, data.
conf: 放置設定檔,Policy,Service register,Configuration Entries等等。
logs: 放置Consul server logs.
data: 放置Consul啟動會存放的資料。
編輯我們的設定檔,命名為nomad-server.hcl,設定檔支援json與Hashicorp的hcl兩種,這裡以hcl示範。
# nomad-server.hcl
datacenter = "Nomad-ithome"
name = "nomad-server"
data_dir = "/home/ec2-user/nomad/data"
bind_addr = "10.168.1.135"
server {
enabled = true
bootstrap_expect = 1
}
log_level = "INFO"
log_file = "/home/ec2-user/nomad/logs"
log_rotate_duration = "24h"
datacenter: 設定datacenter的名稱,沒設定的話預設是”dc1”.
name: 給定該Nomad server名稱,預設是使用hostname.
data_dir: 用來儲存Nomad放資料的地方。
bind_addr: 提供給外部連線Nomad使用的IP, 例如: Web UI, HTTP等,預設是”127.0.0.1”
server{enabled = true} : 啟動server mod.
**bootstrap_expect:**預計要啟動幾個server,若為三台Nomad server做HA, 則設定為3.
log_level: 預設是”info”,另外還有"trace", "debug", "info", "warn", and "err”.
log_file: log file 路徑,檔名會是nomad-{timestamp}.log
log_rotate_duration: log紀錄多久時間rotate一次。
定檔都編寫完成後,可以使用參數”-config” 帶入設定檔:
nomad agent -config=./conf/
啟動後我們連線到 http://10.168.1.135:4646
.如果沒有背景執行,你會看到log一直印出來,要停止按ctrl+c即可。
.有背景執行,先ps -ef |grep nomad,再kill -9 PID即可。