目前使用 Playbook 方式进行部署的一般是集群系统,面对不定数量的一组 Host,经常需要利用这一组主机的信息来拼接为一个字符串,以此结果设置为变量,其他需要集群信息的配置文件/命令行参数就可以引用这一信息了。
下面代码以一组 Host 生成形如 server1=ip1:port,server2=ip1:port
的结果。
Host 信息:
[node]
10.211.55.78
10.211.55.79
10.211.55.80
- name: storage
set_fact: host_list="{{ groups['node'] }}"
- name: combine
set_fact: host_list="{% for item in host_list %} node{{ item.split(".")[2] }}_{{ item.split(".")[3]}}=http://{{item}}:{{ node_peer_port }} {% endfor %}"
- name: display
set_fact: cluster_hosts={{ host_list.split() | join(",") }}
- name: debug
debug: var=cluster_hosts
文章来源于互联网:Ansible Playbook 拼接字符串