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_tasks
defined in the play. - Any handlers triggered so far will be run.
- Each role listed in
roles
will execute in turn. Any role dependencies defined in the rolesmeta/main.yml
will be run first, subject to tag filtering and conditionals. - Any
tasks
defined in the play. - Any handlers triggered so far will be run.
- Any
post_tasks
defined 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 ...
随机推荐
- Hive之函数与自定义函数
系统自带的函数 1)查看系统自带的函数 hive> show functions; 2)显示自带的函数的用法 hive> desc function upper; 3)详细显示自带的函数的 ...
- SpringMvc返回JSON出现"$.result.currentLevel"
"$.result.currentLevel" 问题描述 使用SpringMvc返回一个json数据的时候,会在产生的结果中出现如下的问题:"$.result.curre ...
- SYNPROXY:廉价的抗DoS攻击方案
DoS攻击是一个永恒的问题,虽然专业厂商的防火墙,负载均衡类的网关设备能比较有效的防御DoS攻击,但黑客们更倾向于x86+GNU/Linux的组合,原因很简单:足够的廉价. 在linux内核3.13里 ...
- Cesium 学习(二)所支持的模型数据类型,以及转换
1.Cesium所支持的模型数据类型 目前所知的有glTF.glb.bgltf等格式的模型数据: 想要了解glTF等的知识可以看一下https://www.cnblogs.com/fuckgiser/ ...
- 学习16内容# 1.自定义模块 # 2.time # 3.datetime # 4.random
模块的定义与分类 模块是什么? 这几天,我们进入模块的学习.在学习模块之前,我们首先要知道,什么是模块? 一个函数封装一个功能,你使用的软件可能就是由n多个函数组成的(先不考虑面向对象).比如 ...
- WebGL着色器32位浮点数精度损失问题
问题 WebGL浮点数精度最大的问题是就是因为js是64位精度的,js往着色器里面穿的时候只能是32位浮点数,有效数是8位,精度丢失比较严重. 这篇文章里讲了一些处理方式,但是视坐标这种方式放在我们的 ...
- rabbitMQ_Publish/Subscribe(三)
发布/订阅 生产者发布信息,多个订阅者可以同时接收到信息. 转发器 现在是时候在RabbitMQ中引入完整的消息传递模式了. 让我们快速了解我们在以前的教程中介绍的内容: 生产者是一个发送消息的应用程 ...
- 文件A的内容复制到B
1.脚本 from sys import argvfrom os.path import existsscript,from_file,to_file = argvprint("Copy f ...
- O2优化的实质
重点:如果使用多个-O选项(包含或不包含级别编号),则最后一个选项是有效的选项.------------ ------------ ------------例如:#pragma GCC optimiz ...
- 五、Python基础(2)
五,Python基础(2) 1.数据类型基础 (一)什么是数据类型? 用于区分变量值的不同类型. (二)为何对数据分类? 针对不同状态就应该用不同类型的数据去标识. (三)数据类型分类 1.数字类型 ...