前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jenkins通过ansible的set_fact模块给变量赋值

jenkins通过ansible的set_fact模块给变量赋值

作者头像
joshua317
发布2021-06-09 23:59:56
2.2K0
发布2021-06-09 23:59:56
举报
文章被收录于专栏:技术博文技术博文

转载自joshua317博客 https://www.joshua317.com/article/24

1.通过set_fact模块可以在tasks中定义变量,yaml文件内容如下:
代码语言:javascript
复制
#要部署的远程服务器ip,通过ansible.ini里面设置
- hosts: "{{ server_group }}"
  vars:
    var1: var1_string
  tasks:
  - shell: "echo var2_string"
    register: shellReturn
  - set_fact:
      var1: "{{testvar1}}"
      var2: "{{shellReturn.stdout}}"
  - debug:
      msg: "{{var1}} {{var2}}"
2.获取当前ansible操作的远程服务器ip的地址
代码语言:javascript
复制
- hosts: "{{ server_group }}"
  - debug: var=inventory_hostname
  - debug: var=hostvars[inventory_hostname]['ansible_default_ipv4']['address']
  - shell: "echo {{ inventory_hostname }}"
    register: shellReturn
  #把获取到的ip地址赋值给SERVER_IP变量
  - set_fact:
     SERVER_IP: "{{shellReturn.stdout}}"
3.通过template模块替换文件里面的SERVER_IP

举例说明

首先需要有一个.j2后缀的文件,如php.ini.j2,里面的内容有变量SERVER_IP

代码语言:javascript
复制
ENV.HOST_IP = "{{ SERVER_IP }}"

通过template模块替换如下:

代码语言:javascript
复制
- name: create {{ project }} copy php-conf
  template:
    src: "conf/php/php.ini.j2"
    dest: "/data/conf/php/php.ini"

此时,通过jenkins发布的时候,php.ini文件的里面的ENV.HOST_IP值,已经变成了SERVER_IP对应的值。

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-05-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.通过set_fact模块可以在tasks中定义变量,yaml文件内容如下:
  • 2.获取当前ansible操作的远程服务器ip的地址
  • 3.通过template模块替换文件里面的SERVER_IP
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com