Ansible Playbook 拼接字符串

目前使用 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
Avatar
崔秀龙

简单,是大师的责任;我们凡夫俗子,能做到清楚就很不容易了。

comments powered by Disqus
下一页
上一页