文档章节

ansible(二)—— inventory

异类深呼吸
 异类深呼吸
发布于 2014/05/26 20:10
字数 883
阅读 405
收藏 2
点赞 0
评论 0

<h2 style="font-size: 24px; -webkit-print-color-adjust: exact; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding: 0px; -webkit-font-smoothing: antialiased; cursor: text; position: relative; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #cccccc; font-family: Helvetica, arial, sans-serif; margin-top: 0px !important;">ansible(二) -- inventory</h2> <blockquote style="border-left-color: #dddddd; margin: 15px 0px; padding: 0px 15px; -webkit-print-color-adjust: exact; color: #777777; font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 22px;"> <p style="-webkit-print-color-adjust: exact; margin: 0px;">例子直接从官网上摘抄。地址:http://docs.ansible.com/intro_inventory.html#id10</p> </blockquote> <h2 style="font-size: 24px; -webkit-print-color-adjust: exact; margin: 20px 0px 10px; padding: 0px; -webkit-font-smoothing: antialiased; cursor: text; position: relative; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #cccccc; font-family: Helvetica, arial, sans-serif;">1、Ad-hoc commands</h2> <blockquote style="border-left-color: #dddddd; margin: 15px 0px; padding: 0px 15px; -webkit-print-color-adjust: exact; color: #777777; font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 22px;"> <p style="-webkit-print-color-adjust: exact; margin: 0px 0px 15px;">对于一些快速执行的而又无需写入保存的任务,ansible提供了这种特殊命令行的操作;这里官方地址:http://docs.ansible.com/intro_adhoc.html</p> <p style="-webkit-print-color-adjust: exact; margin: 15px 0px 0px;">官网给的解释很有趣,既然playbook如此强大,为何还要提供这种特殊的命令行呢,所以举例说明,假如你只想圣诞节间关机的情况下,只执行一条命令的效率很显然比写playbook文件的效果要更好</p> </blockquote> <h4 style="font-size: 16px; -webkit-print-color-adjust: exact; margin: 20px 0px 10px; padding: 0px; -webkit-font-smoothing: antialiased; cursor: text; position: relative; font-family: Helvetica, arial, sans-serif;">准备工作</h4> <blockquote style="border-left-color: #dddddd; margin: 15px 0px; padding: 0px 15px; -webkit-print-color-adjust: exact; color: #777777; font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 22px;"> <p style="-webkit-print-color-adjust: exact; margin: 0px;">在做之前,当然就是实现ssh无秘钥登录,即拷贝公钥到要管理的目标主机上</p> </blockquote> <p style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 22px;">基本语法:</p> <pre style="margin: 15px 0px; font-size: 13px; -webkit-print-color-adjust: exact; background-color: #f8f8f8; border: 1px solid #cccccc; line-height: 19px; overflow: auto; padding: 6px 10px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;"><code style="-webkit-print-color-adjust: exact; margin: 0px; padding: 0px; border: none; background-color: transparent; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;">ansible &lt;pattern_goes_here&gt; -m &lt;module_name&gt; -a &lt;arguments&gt; -i:指定 inventory 文件,使用当前目录下的 hosts all:针对 hosts 定义的所有主机执行,这里也可以指定组名或模式 -m:指定所用的模块,我们使用 Ansible 内置的 ping 模块来检查能否正常管理远端机器 -u:指定远端机器的用户 -a:参数部分 </code></pre> <h3 style="font-size: 18px; -webkit-print-color-adjust: exact; margin: 20px 0px 10px; padding: 0px; -webkit-font-smoothing: antialiased; cursor: text; position: relative; font-family: Helvetica, arial, sans-serif;">模式</h3> <blockquote style="border-left-color: #dddddd; margin: 15px 0px; padding: 0px 15px; -webkit-print-color-adjust: exact; color: #777777; font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 22px;"> <p style="-webkit-print-color-adjust: exact; margin: 0px;">了解下命令行中的特殊模式</p> </blockquote> <pre style="margin: 15px 0px; font-size: 13px; -webkit-print-color-adjust: exact; background-color: #f8f8f8; border: 1px solid #cccccc; line-height: 19px; overflow: auto; padding: 6px 10px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;"><code style="-webkit-print-color-adjust: exact; margin: 0px; padding: 0px; border: none; background-color: transparent; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;">all 等价于inventory中的所有hosts <br />one.example.com \\一台主机 <br />one.example.com:two.example.com \\两台主机 <br />192.168.1.50 \\也可以已IP地址指定 <br />192.168.1.* \\通配符 </code></pre> <pre style="margin: 15px 0px; font-size: 13px; -webkit-print-color-adjust: exact; background-color: #f8f8f8; border: 1px solid #cccccc; line-height: 19px; overflow: auto; padding: 6px 10px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;"><code style="-webkit-print-color-adjust: exact; margin: 0px; padding: 0px; border: none; background-color: transparent; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;">#组的指定 <br />webservers <br />webservers:dbservers <br /><br />#指定一个组,但是却不在另外一个组中 <br />webservers:!phoenix <br /><br />#指定交叉,加入webservers同时也必须加入staging中 <br />webservers:&amp;staging <br /><br />#上面也可以综合起来写 <br />webservers:dbservers:&amp;staging:!phoenix <br /><br />#传递变量,必须加上参数-e,但是一般不会用 <br />webservers:!{{excluded}}:&amp;{{required}} </code></pre> <pre style="margin: 15px 0px; font-size: 13px; -webkit-print-color-adjust: exact; background-color: #f8f8f8; border: 1px solid #cccccc; line-height: 19px; overflow: auto; padding: 6px 10px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;"><code style="-webkit-print-color-adjust: exact; margin: 0px; padding: 0px; border: none; background-color: transparent; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;">#模糊匹配 <br />*.example.com *.com <br /><br />#混合写法 <br />one*.com:dbservers <br /><br />#正则写法 <br />~(web|db).*\.example\.com</code></pre> <h2 style="font-size: 24px; -webkit-print-color-adjust: exact; margin: 20px 0px 10px; padding: 0px; -webkit-font-smoothing: antialiased; cursor: text; position: relative; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #cccccc; font-family: Helvetica, arial, sans-serif;">2、inventory</h2> <blockquote style="border-left-color: #dddddd; margin: 15px 0px; padding: 0px 15px; -webkit-print-color-adjust: exact; color: #777777; font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 22px;"> <p style="-webkit-print-color-adjust: exact; margin: 0px;">inventory 文件用来定义你要管理的主机。其默认位置在 /etc/ansible/hosts ,如果不保存在默认位置,也可通过-i选项指定。</p> </blockquote> <p style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 22px;">参照官网,这里inventory可以灵活多变的写成多样的形式来满足不同的需求</p> <pre style="margin: 15px 0px; font-size: 13px; -webkit-print-color-adjust: exact; background-color: #f8f8f8; border: 1px solid #cccccc; line-height: 19px; overflow: auto; padding: 6px 10px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;"><code style="-webkit-print-color-adjust: exact; margin: 0px; padding: 0px; border: none; background-color: transparent; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;">mail.example.com \\未分组的机器需要在hosts的顶部保留 <br />[webservers] <br />foo.example.com <br />bar.example.com <br /><br />[dbservers] <br />one.example.com <br />two.example.com <br />three.example.com <br /><br />[test:children] \\支持嵌套 <br />webservers <br />dbservers </code></pre> <pre style="margin: 15px 0px; font-size: 13px; -webkit-print-color-adjust: exact; background-color: #f8f8f8; border: 1px solid #cccccc; line-height: 19px; overflow: auto; padding: 6px 10px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;"><code style="-webkit-print-color-adjust: exact; margin: 0px; padding: 0px; border: none; background-color: transparent; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;">#支持基于非标准的SSH端口 <br />badwolf.example.com:5309 <br /><br />#支持跳转 <br />jumper ansible_ssh_port=5555 ansible_ssh_host=192.168.1.50 </code></pre> <pre style="margin: 15px 0px; font-size: 13px; -webkit-print-color-adjust: exact; background-color: #f8f8f8; border: 1px solid #cccccc; line-height: 19px; overflow: auto; padding: 6px 10px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;"><code style="-webkit-print-color-adjust: exact; margin: 0px; padding: 0px; border: none; background-color: transparent; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;">#支持通配 <br />[webservers]<br />www[01:50].example.com \\表示www01-50.example.com的50个目标 <br /><br />[databases] <br />db-[a:f].example.com \\同理db-a - db-f.example.com的目标 </code></pre> <pre style="margin: 15px 0px; font-size: 13px; -webkit-print-color-adjust: exact; background-color: #f8f8f8; border: 1px solid #cccccc; line-height: 19px; overflow: auto; padding: 6px 10px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;"><code style="-webkit-print-color-adjust: exact; margin: 0px; padding: 0px; border: none; background-color: transparent; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;">#基于不同的主机不同的连接类型 <br />[targets] <br />localhost ansible_connection=local <br />other1.example.com ansible_connection=ssh ansible_ssh_user=mpdehaan <br />other2.example.com ansible_connection=ssh ansible_ssh_user=mdehaan </code></pre> <h3 style="font-size: 18px; -webkit-print-color-adjust: exact; margin: 20px 0px 10px; padding: 0px; -webkit-font-smoothing: antialiased; cursor: text; position: relative; font-family: Helvetica, arial, sans-serif;">Host变量</h3> <pre style="margin: 15px 0px; font-size: 13px; -webkit-print-color-adjust: exact; background-color: #f8f8f8; border: 1px solid #cccccc; line-height: 19px; overflow: auto; padding: 6px 10px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;"><code style="-webkit-print-color-adjust: exact; margin: 0px; padding: 0px; border: none; background-color: transparent; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;">#主机变量很容易被稍后的playbook引用 <br />[atlanta] <br />host1 http_port=80 maxRequestsPerChild=808 <br />host2 http_port=303 maxRequestsPerChild=909 </code></pre> <h3 style="font-size: 18px; -webkit-print-color-adjust: exact; margin: 20px 0px 10px; padding: 0px; -webkit-font-smoothing: antialiased; cursor: text; position: relative; font-family: Helvetica, arial, sans-serif;">Group变量</h3> <pre style="margin: 15px 0px; font-size: 13px; -webkit-print-color-adjust: exact; background-color: #f8f8f8; border: 1px solid #cccccc; line-height: 19px; overflow: auto; padding: 6px 10px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;"><code style="-webkit-print-color-adjust: exact; margin: 0px; padding: 0px; border: none; background-color: transparent; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;">#变量可以直接在组中全部应用 <br />[atlanta] <br />host1 <br />host2 <br /><br />[atlanta:vars] <br />ntp_server=ntp.atlanta.example.com \\直接引用上面的host1和host2 <br />proxy=proxy.atlanta.example.com <br /><br />#同样支持嵌套 <br />[atlanta] <br />host1 <br />host2 <br /><br />[raleigh] <br />host2 <br />host3 <br /><br />[southeast:children] <br />atlanta <br />raleigh <br /><br />[southeast:vars] <br />some_server=foo.southeast.example.com <br />halon_system_timeout=30 <br />self_destruct_countdown=60 <br />escape_pods=2 <br /><br />[usa:children] <br />southeast <br />northeast <br />southwest <br />northwest </code></pre> <h2 style="font-size: 24px; -webkit-print-color-adjust: exact; margin: 20px 0px 10px; padding: 0px; -webkit-font-smoothing: antialiased; cursor: text; position: relative; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #cccccc; font-family: Helvetica, arial, sans-serif;">3、Dynamic Inventory</h2> <p style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 22px;">在不同的系统平台上,ansible也提供了基于文本的形式来描述inventory,这部分还没太看明白,日后看明白,补充上这部分的内容</p> <p style="-webkit-print-color-adjust: exact; margin-top: 15px; margin-right: 0px; margin-left: 0px; font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 0px !important;">常用指令在上一篇已经提到,这里就不多做更多演示,而要完成日常任务都是依赖于各个模块提供的功能,我基本上日常中只用到了ansible的这些功能,关于ansible的核心,playbook,也会在后面的文章中去学习,和各位分享学习过程</p>

© 著作权归作者所有

共有 人打赏支持
异类深呼吸
粉丝 5
博文 46
码字总数 42368
作品 0
朝阳
系统管理员
ansible管理windows实践

ansible管理windows实践 一、前言 近期打算搞搞自动部署,因为是windows服务器,一些工具和系统支持都不是太好。最后发现ansible比较火,最重要的是他支持windows。本文主要就ansible 在win...

holy2009
06/28
0
0
centos7 ansible yum安装web软件

一、网站拓扑 ansible主机inventory的情况: # cat ansible_inventory.txt [front] 10.11.7.224 ansibleconnection=ssh ansiblesshuser=root ansiblessh_pass=xuAK 10.11.5.209 ansibleconn......

youkoudiancom
2017/04/15
0
0
ansible动态inventory 获取自定义的主机列表

一、简单说明 Ansible,默认是调用“/etc/ansible/hosts”配置的主机组或者主机,同时也可以通过 -i 参数指定自定义的hosts文件。 Ansible Inventory实际上是包含静态Inventory和动态Invento...

科技小能手
2017/11/12
0
0
ansible之介绍

一.ansible介绍常用的自动化运维工具Puppet —基于 Ruby 开发,采用 C/S 架构,扩展性强,基于 SSL,远程命令执行相对较弱SaltStack —基于 Python 开发,采用 C/S 架构,相对 puppet 更轻量...

演员的blog
01/01
0
0
Ansible:自动化工具

1 概述 1. 关于Ansible Ansible是一个IT自动化工具,它能够配置系统、部署软件以及持续性部署、零宕机滚动升级等高阶的IT任务,是系统运维员、开发人员、IT管理者的自动化解决方案的不二选择...

guzhoujiexing
2014/06/12
0
0
运维自动化之ansible使用详解(包括常用模块与playbook使用)

什么是ansible? ansible是个什么东西呢?官方的title是“Ansible is Simple IT Automation”——简单的自动化IT运维管理工具。这个工具的目标有这么几项:让我们自动化部署APP;自动化管理配...

linuxzkq
2017/04/30
0
0
企业级自动化运维工具——ansible

ansible是什么 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。 an...

咏雪
06/28
0
0
自动化批量部署工具Ansible笔记之ansible安装与Inventory文件

自动化批量部署工具Ansible笔记之ansible安装与Inventory文件 一、ansible简介 ansible是一款自动化运维部署工具,与saltstack,pupet等不同的是,ansible没有采用C/S的架构,即没有客户端与...

烟头网管
2015/09/25
0
0
Ansible详解(二)

一、YAML简介 二、Ansible组件 三、主机清单Invetory 四、PlayBook介绍 一、YAML简介 http://www.yaml.org YAML:可以使用简单清单,散列表,标题等数据结构。 YAML的语法和其他高阶语言类似,并...

MT_IT
01/06
0
0
笔记一: ansible 安装配置

更新日期: 2016-11-30 1.安装相关模块 (1)、setuptools模块安装 (2)、PyYAML模块安装 (3)、Jinja2模块安装 (4)、paramiko模块安装 2.安装ansible 3.配置免密钥登录 (1)生成秘钥 (2)将公钥传输...

ONG_赵佳
06/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

知识点总结

jq如何拿到data-info的自定义属性 1.1 原生可以获取到所有属性el.attrbutes 1.2 jq的$(el).attr('属性名称') 继承的几种方式,原型链 2.1 扩展原型对象实现继承 2.2 替换原型对象实现继承 2....

litCabbage
9分钟前
0
0
python语言规范

http://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/...

ghou-靠墙哭
13分钟前
0
0
istio 监控,遥测 (理论)

Istio提供了一种灵活的模型来强制执行授权策略并收集网格中服务的遥测。 基础架构后端旨在提供用于构建服务的支持功能。它们包括诸如访问控制系统,遥测捕获系统,配额执行系统,计费系统等之...

xiaomin0322
15分钟前
0
0
阿里资深专家面试问题收集

corejava hashcode相等的两个对象一定相等吗?equals呢?反过来相等吗? 介绍一下集合框架? hashtable,hashmap底层实现是什么?hashtable和concurrenthashmap底层实现的区别? hashmap和treemap的...

undefine
16分钟前
6
0
alpine安装软件指定安装源

linux-alpine安装软件指定安装源 一、永久修改apk下载源地址 vi etc/apk/repositories 替换成阿里源 http://mirrors.aliyun.com/alpine/v3.8/main/http://mirrors.aliyun.com/alpine/v3...

我心中有猛狗
17分钟前
0
0
Centos7通过yum安装nginx

添加源地址(直接install可能不是最新版本的) sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 安装 sudo yum install -y ng......

iplusx
18分钟前
0
0
ef .core Dapper Helper

using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Threading.Tasks; using Dapper; using Dap......

Lytf
20分钟前
0
0
iOS 小笔记

1.以下代码打印什么     __block int val = 10;    void (^blk)(void) = ^{        printf("val=%d\n",val);        };       val = 2;    blk(); /...

风了个1
22分钟前
0
0
【Spring Boot 系列 Spring Boot示例程序】

入门程序步骤,创建一个Maven项目。继承Spring Boot官方提供的父工程。再引入一个Web的应用启动器。 1、选择一个合适的IDEA工具 创建一个Maven工程,并添加如下配置 <parent> <...

HansonReal
23分钟前
0
0
217. Contains Duplicate - LeetCode

Question 217. Contains Duplicate Solution 题目大意:判断数组中是否有重复元素 思路:构造一个set,不重复就加进去,重复返回true,如果数据量大的话,可以用布隆过滤器 Java实现: publ...

yysue
28分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部