文档章节

ansible(二)—— inventory

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

<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
朝阳
系统管理员
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
从0到1使用Kubernetes系列(二)——安装工具介绍

本文是Kubernetes系列的第二篇,将介绍使用Kubeadm+Ansible搭建Kubernetes集群所需要的工具及其作用。 主要内容包括: Kubeadm Kubeadm是什么 Kubeadm的目标 Kubeadm的子命令 Kubeadm的安装 ...

Choerodon
09/17
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

没有更多内容

加载失败,请刷新页面

加载更多

Vue学习资料

一直以为Vue是依赖nodejs的。 作为前端也可以耦合性就很低了。 //npm包管理器 进行管理npm install vue//初始化一个项目vue init//本地调试npm run dev//编译完成 ...

大灰狼wow
30分钟前
1
0
fullcalendar重新渲染

uiCalendarConfig.calendars.lesson_calendar.fullCalendar('removeEvents');var ym = uiCalendarConfig.calendars.lesson_calendar.fullCalendar('getView').title;$scope.get_lesson(y......

人来疯啊
34分钟前
1
0
多渠道打包总结

https://www.jianshu.com/p/2130db7584c8 https://blog.csdn.net/u011153817/article/details/50772496...

塔塔米
43分钟前
1
0
android -------- Data Binding的使用 ( 六) 自定义属性

今天来说说DataBinding在自定义属性的使用 默认的android命名空间下,我们会发现并不是所有的属性都能直接通过data binding进行设置,比如margin,padding,还有自定义View的各种属性。 默认...

切切歆语
49分钟前
1
0
收邮件 下载附件

uses IdMessage, IdMessageParts, IdAttachment, IdGlobalProtocols, ...;procedure SaveAttachmentsFromFile(FileName: String)var IdMessage: TIdMessage; MsgPart: Ti......

vga
56分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部