如何使用Ansible替换环境变量

时间:2018-07-04 14:20:42

标签: ansible

我正在使用Ansible自动化我的DevOps任务。在远程计算机上,我有一个配置文件,可用于执行不同的任务。

env.conf文件具有以下内容

IP=192.168.1.100
PORT=5250

#Other details here

我要执行的操作将IP值192.168.1.100和端口值'5250'替换为其他一些值

IP=NEW_IP
PORT=NEW_PORT

#Other details here

如何使用ansible-playbook文件实现此目标?

我知道ansible文件模块,但是如何使用ansible-playbook文件替换环境变量的内容。

1 个答案:

答案 0 :(得分:1)

您要寻找的是Ansible module lineinfile。作为剧本,您可以使用以下内容:

- hosts: all
  vars:
    new_ip: 1.1.1.1
    new_port: 1234
  tasks:
    - file:
        path: /etc/env.conf
        state: touch
    - name: Substitute ip
      lineinfile:
        path: /etc/enc.conf
        regexp: '^IP='
        line: 'IP={{ new_ip }}'
    - name: Substitute port
      lineinfile:
        path: /etc/env.conf
        regexp: '^PORT='
        line: 'PORT={{ new_port }}'