63 lines
1.1 KiB
Django/Jinja
63 lines
1.1 KiB
Django/Jinja
# Consul Client Configuration for {{ inventory_hostname }}
|
|
datacenter = "dc1"
|
|
data_dir = "/opt/consul/data"
|
|
log_level = "INFO"
|
|
node_name = "{{ inventory_hostname }}"
|
|
bind_addr = "{{ ansible_host }}"
|
|
|
|
# Client mode (not server)
|
|
server = false
|
|
|
|
# Connect to Consul servers (指向三节点集群)
|
|
retry_join = [
|
|
{% for server in consul_servers %}
|
|
"{{ server }}"{% if not loop.last %},{% endif %}
|
|
{% endfor %}
|
|
]
|
|
|
|
# Performance optimization
|
|
performance {
|
|
raft_multiplier = 5
|
|
}
|
|
|
|
# Ports configuration
|
|
ports {
|
|
grpc = 8502
|
|
http = 8500
|
|
dns = 8600
|
|
}
|
|
|
|
# Enable Connect for service mesh
|
|
connect {
|
|
enabled = true
|
|
}
|
|
|
|
# Cache configuration for performance
|
|
cache {
|
|
entry_fetch_max_burst = 42
|
|
entry_fetch_rate = 30
|
|
}
|
|
|
|
# Node metadata
|
|
node_meta = {
|
|
region = "unknown"
|
|
zone = "nomad-{{ 'server' if 'server' in group_names else 'client' }}"
|
|
}
|
|
|
|
# UI disabled for clients
|
|
ui_config {
|
|
enabled = false
|
|
}
|
|
|
|
# ACL configuration (if needed)
|
|
acl = {
|
|
enabled = false
|
|
default_policy = "allow"
|
|
}
|
|
|
|
# Logging
|
|
log_file = "/var/log/consul/consul.log"
|
|
log_rotate_duration = "24h"
|
|
log_rotate_max_files = 7
|
|
|