Ansible实践总结
Ansible playbook 根据条件动态设置变量
首先新建 inventory,主机列表如下:
node-01 ansible_host=192.168.64.30
node-02 ansible_host=192.168.64.31 [app]
node-01 [db]
node-02
然后新建一个 test.yml,新增如下内容:
- hosts: db[0]:app[0] # 支持索引取值
vars:
- Role: "{{ 'db' if 'app' in group_names else 'app' }}" # 动态设置变量
- Ports:
app: 4503
db: 4502 pre_tasks: # 默认tasks只能在roles执行完后才执行,而pre-tasks可以在roles之前执行
- name: Debug
debug:
msg: This is a test message. roles:
- testrole
新建 roles/testrole/defaults/main.yml
---
RESTLink: 'http://{{ inventory_hostname }}:{{ Ports[Role] }}'
新建 roles/testrole/tasks/main.yml
---
- debug:
msg: "Final URL is {{ RESTLink }}"
执行该 playbook
ansible-playbook -i inventory test.yml
输出结果是:
PLAY [db[0]:app[0]] ******************************************************************************************************************************************* TASK [Gathering Facts] ****************************************************************************************************************************************
Tuesday 27 August 2019 18:22:30 +0800 (0:00:00.121) 0:00:00.121 ********
ok: [node-01]
ok: [node-02] TASK [debug] **************************************************************************************************************************************************
Tuesday 27 August 2019 18:22:32 +0800 (0:00:02.242) 0:00:02.363 ********
ok: [node-02] => {
"msg": "This is a test message."
}
ok: [node-01] => {
"msg": "This is a test message."
} TASK [testrole : Debug] ***************************************************************************************************************************************
Tuesday 27 August 2019 18:22:33 +0800 (0:00:00.255) 0:00:02.620 ********
ok: [node-02] => {
"msg": "Final URL is http://node-02:4503"
}
ok: [node-01] => {
"msg": "Final URL is http://node-01:4502"
} PLAY RECAP ****************************************************************************************************************************************************
node-01 : ok=3 changed=0 unreachable=0 failed=0
node-02 : ok=3 changed=0 unreachable=0 failed=0
总结:
1. When used in this manner, the order of execution for your playbook is as follows:
- Any
pre_tasksdefined in the play. - Any handlers triggered so far will be run.
- Each role listed in
roleswill execute in turn. Any role dependencies defined in the rolesmeta/main.ymlwill be run first, subject to tag filtering and conditionals. - Any
tasksdefined in the play. - Any handlers triggered so far will be run.
- Any
post_tasksdefined in the play. - Any handlers triggered so far will be run.
Ansible实践总结的更多相关文章
- Nebula Graph 的 Ansible 实践
本文首发于 Nebula Graph 公众号 NebulaGraphCommunity,Follow & 看大厂图数据库技术实践 背景 在 Nebula-Graph 的日常测试中,我们会经常在 ...
- ansible实践4- 管理配置文件
生产环境中大多时候是需要管理配置文件的,安装软件包只是在初始化环境的时候用一下.下面我们来写个管理nginx配置文件的playbook mkdir -p /etc/ansible/nginx_c ...
- ansible实践3-playbook条件判断
--- - hosts: testhost user: root gather_facts: True tasks: - name: use when shell: t ...
- ansible实践2-拷贝文件或目录
ansible testhost -m copy -a "src=/etc/ansible dest=/tmp/ansibletest owner=root group=root mo ...
- ansible实践-1
不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook 支持sudo 有提供UI(浏览器图形化)www.ans ...
- ansible实践
ansible常用module ansible-doc -l List available modules -s Show playbook snippet for specified module( ...
- Ansible - 简介和应用自动化基础实践
installAnsible简介和应用自动化基础实践 一.引入: 1.1 如官方定义,Ansible is The simplest way to automate apps and IT infr ...
- 《Ansible自动化运维:技术与佳实践》第二章读书笔记
Ansible 安装与配置 本章主要讲的是 Ansible 安装与基本配置,主要包含以下内容: Ansible 环境准备 安装 Ansible 配置运行环境 Ansible 环境准备 从 GitHub ...
- ansible服务部署与使用
第1章 ssh+key实现基于密钥连接(ansible使用前提) 说明: ansible其功能实现基于SSH远程连接服务 使用ansible需要首先实现ssh密钥连接 1.1 部署ssh ...
随机推荐
- 个人永久性免费-Excel催化剂功能第28波-工作薄瘦身,安全地减少非必要冗余
Excel催化剂在完善了数据分析场景的插件需求后,决定再补充一些日常绝大多数Excel用户同样可以使用到的小功能,欢迎小白入场,在不违背太多Excel最佳实践的前提下,Excel催化剂乐意为广大Exc ...
- html+css-->background-img(背景图的设置)
背景图:(相关验证代码请查看代码,在验证时需将当前不需要验证的代码注释掉) 1.inherit:从父元素继承属性设置 2.background-repeat:平铺(在图片大小小于元素尺寸时 ...
- .net持续集成sonarqube篇之sonarqube安装与基本配置
系列目录 Sonarqube下载与安装 Sonarqube下载地址是:https://www.sonarqube.org/downloads/下载版本有两个,一个是长期支持版,另一个是最新版,此处安装 ...
- C#3.0新增功能09 LINQ 标准查询运算符 01 概述
连载目录 [已更新最新开发文章,点击查看详细] 标准查询运算符 是组成 LINQ 模式的方法. 这些方法中的大多数都作用于序列:其中序列指其类型实现 IEnumerable<T> 接 ...
- Tomcat(Linux)
百度云:链接:http://pan.baidu.com/s/1o7MNTJc 密码:cfof 官方下载网址:http://archive.apache.org/dist/tomcat/tomca ...
- 自动生成Mybatis的Mapper文件
自动生成Mybatis的Mapper文件 工作中使用mybatis时我们需要根据数据表字段创建pojo类.mapper文件以及dao类,并且需要配置它们之间的依赖关系,这样的工作很琐碎和重复,myba ...
- 数据库---T-SQL语句:查询语句(二)
>查询: 一.查询所有数据: select * from Info ---查询所有数据(行) select Name from Info ---查询特定列(Name列) select N ...
- ubuntu防火墙规则之ufw
前言 因公司项目的需求,需要对客户端机器简便使用防火墙的功能,所以可在页面进行简便设置防护墙规则,当然,这个功能需求放到我手上我才有机会学到.因为客户端机器都是ubuntu的,所以当然用了ubuntu ...
- Jboss反序列化漏洞复现(CVE-2017-12149)
Jboss反序列化漏洞复现(CVE-2017-12149) 一.漏洞描述 该漏洞为Java反序列化错误类型,存在于jboss的HttpInvoker组件中的ReadOnlyAccessFilter过滤 ...
- DotSpatial安装、类库引用方法
解决VS工具栏添加DotSpatial后,控件不全问题. 注意注意注意:不要使用Nuget安装DotSpatial!!! 我在Nuget上把所有DotSpatial的版本都安装了一遍,都缺少控件,然后 ...