系统下所有的操作,从运维操作角度划分为两类:

1、文件传输

2、命令执行

系统下所有的操作,从自动化工作类型角度划分为:

1、应用部署

2、配置管理

3、任务流编排

使用root生成默认的秘钥对:

# ssh-keygen -t rsa

三次回车。

ansible命令主要在如下场景使用:

1、非固化需求或临时一次性操作

2、二次开发接口调用

复制本地文件到远程

ansible all -m copy -a "src=/etc/fstab dest=/tmp/fstab owner=root group=root mode=0644 backup=yes"

src:本地文件

dest:目标文件

owner:文件属主

group:文件属组

mode:文件权限

backup:如果远端不存在/tmp/fstab,copy模块会直接复制一份新文件,这里的backup不起任何作用;如果远端存在/tmp/fstab,且我本地的/tmp/fstab内容同远端的/tmp/fstab内容一致,那么任何事情都不会发生,backup依然不起任何作用;如果我本地修改了/etc/fstab文件,那么在复制文件前,会先对远端的/tmp/fstab进行备份(备份到同目录下,也就是/tmp),然后再复制新文件到远端(可以理解为覆盖,反正我已经备份了)。

返回结果中的三种颜色说明:

1、红色:执行过程有异常,哪一步出现问题,就在哪停止,剩下的不再执行。

2、橘黄色:执行过程没有异常,所有任务均正常执行,目标会有状态变化。

3、绿色:执行过程没有异常,所有任务均正常执行,目标没有状态变化。

所谓状态变化,就是实实在在发生了变化,比如新建了文件,文件权限变了,属主变了,大小变了,等等,这都是状态变化。

Galaxy

可以理解为Github和Pypi,只不过Github上是很多的开源项目,Pypi上有很多的python库,而Galaxy上有很多的Roles。

通过git命令来下载Github上的项目;通过pip来安装Pypi上的python库;通过ansible-galaxy来下载Galaxy上的Roles。

ansible-pull(ansible的拉模式)

有些管理工具,比如Chef和Puppet,是基于拉模式的。

所谓拉模式:

1、管理员写脚本

2、管理员上传脚本

3、agent定时取脚本(比如每隔1分钟)

4、agent运行脚本

同理,ansible的拉模式也是这种原理。

新建一个git的仓库,每台机器运行一个cron定时任务(扮演者agent的角色)每隔一段时间去仓库取最新脚本,然后运行之。

拉模式能轻松应付大规模集群,因为每台机器都是自己去拉取脚本来完成任务。不过也有人用ansible的推模式管理着上千台机器。

详情请参考:

https://www.stavros.io/posts/automated-large-scale-deployments-ansibles-pull-mo/

ansible-doc

ansible-doc -l

查看所有的模块

ansible-doc copy

模块功能详细说明

定义主机和组

定义主机变量

定义组变量

定义组嵌套及组变量

除了在inventory文件中写变量,还可以将变量独立出来,单独放到一个文件中。(文件必须是yaml格式)

ansible会在以下位置查找变量:

1、inventory配置文件(默认的是/etc/ansible/hosts文件)

2、playbook文件中的vars区域

3、roles中vars目录下的文件

4、roles同级目录group_vars和hosts_vars目录下的文件

假如football主机同时属于webserver1和webserver2组,那么可以在以下这些文件中设置football主机的变量:

1、/etc/ansible/group_vars/webserver1.yml

2、/etc/ansible/group_vars/webserver2.yml

3、/etc/ansible/host_vars/football.yml

重启webservers组所有主机的httpd服务

Ad-Hoc使用场景

情景1:节假日将至,需要关闭所有不必要的服务器,并对所有服务器进行节前健康检查。

情景2:临时更新Apache & Nginx的配置文件,并分发至需要更新该配置的web服务器上。

Ansible-playbook使用场景

情景1:新购置的服务器安装完操作系统后需要做一些固定的初始化工作,比如:设置防火墙策略、添加NTP时间服务器、添加EPEL源。

情景2:业务侧每周定期对生产环境发布代码。

随笔-ansible-1的更多相关文章

  1. Ansible随笔8

    自定义模块的开发模式 1.决定自定义模块的存放路径 编辑/etc/ansible/ansible.cfg文件,修改library = /usr/share/ansible/. 这样就告诉ansible ...

  2. Ansible playbook API 开发 调用测试

    Ansible是Agentless的轻量级批量配置管理工具,由于出现的比较晚(13年)基于Ansible进行开发的相关文档较少,因此,这里通过一些小的实验,结合现有资料以及源码,探索一下Ansible ...

  3. ansible学习

    声明:本博客内容是根据惨绿少年内容实践随笔,地址:http://www.cnblogs.com/clsn/p/7743792.html#comment_form 1.ansible介绍 Ansible ...

  4. Ansible 利用playbook批量部署mariadb

    环境说一下 192.168.30.21     ansible 192.168.30.25     client1 192.168.30.26     client2 这里我的ansible环境已经部 ...

  5. Ansible实现zabbix服务器agent端批量部署

    项目需求:由于搭建zabbix,需要每台服务器都需要安装监控端(agent)正常的的操作是一台一台去安装,这样确实有点浪费时间,这里为大家准备了一款开源 的自动化运维工具Ansible,相信大家也很熟 ...

  6. 利用ansible书写playbook搭建HAProxy+Keepalived+PXC负载均衡和高可用的PXC环境续

    ansible.playbook.haproxy.keepalived.PXC haproxy+keepalived双主模式调度pxc集群 HAProxy介绍 反向代理服务器,支持双机热备支持虚拟主机 ...

  7. 如何利用ansible callback插件对执行结果进行解析

    最近在写一个批量巡检工具,利用ansible将脚本推到各个机器上执行,然后将执行的结果以json格式返回来. 如下所示: # ansible node2 -m script -a /root/pyth ...

  8. AI人工智能系列随笔

    初探 AI人工智能系列随笔:syntaxnet 初探(1)

  9. 【置顶】CoreCLR系列随笔

    CoreCLR配置系列 在Windows上编译和调试CoreCLR GC探索系列 C++随笔:.NET CoreCLR之GC探索(1) C++随笔:.NET CoreCLR之GC探索(2) C++随笔 ...

  10. C++随笔:.NET CoreCLR之GC探索(4)

    今天继续来 带大家讲解CoreCLR之GC,首先我们继续看这个GCSample,这篇文章是上一篇文章的继续,如果有不清楚的,还请翻到我写的上一篇随笔.下面我们继续: // Initialize fre ...

随机推荐

  1. ThinkPHP学习(二)理清ThinkPHP的目录结构及访问规则,创建第一个控制器

    ThinkPHP的目录结构 回顾上一篇的安装目录: 目录对应关系 F:\\PHP├─index.php       入口文件├─README.md       README文件├─Applicatio ...

  2. 将.opt、.frm、.MYD、.MYI文件放入mysql

    问题:如果数据库没有给sql脚本而且给的.opt..frm..MYD..MYI这些文件,应该如何加载呢???? 解答:首先需要找到“mysql的安装目录/data/”,怎么找?mysql命令执行“sh ...

  3. 互联网大厂高频重点面试题 (第2季)JUC多线程及高并发

    本期内容包括 JUC多线程并发.JVM和GC等目前大厂笔试中会考.面试中会问.工作中会用的高频难点知识.斩offer.拿高薪.跳槽神器,对标阿里P6的<尚硅谷_互联网大厂高频重点面试题(第2季) ...

  4. pymongo中使用聚合查询

    在使用mongo数据库时,简单的查询基本上可以满足大多数的业务场景,但是试想一下,如果要统计某一荐在指定的数据中出现了多少次该怎么查询呢?笨的方法是使用find 将数据查询出来,再使用count() ...

  5. HBase1.0.0 实现数据增删查

    HBase1.0.0 即Hadoop 2.6 采用maven 的方式实现HBase数据简单操作 import java.io.IOException; import java.util.ArrayLi ...

  6. EtherCat开源主站SOEM在windows下工程配置

    截至2019年1月,虽然github上有1.3.3的更新,但是用的人估计还不多,而且1.3.2被官方认为bug严重弃用.所以还是学习1.3.1. 1.拷贝osal.oshw.soem.lib(已生成l ...

  7. winform textbox 不能唤醒windows 平板的软键盘解决办法

    这个问题,研究了将近两个小时,baidu,google,好大一会,windows 平板本身的应用程序,必须浏览器,notepad都是可以自动唤起软键盘的,但是我的winfrom 程序就是不可以,起先怀 ...

  8. spring mvc 配置后,web中的html页面报404,该怎么处理

    问题描述: 在根目录webapp下的jsp页面可以通过url直接访问,而html页面就会报404错误. 解决方案1: 在spring-mvc.xml中添加如下配置: <!--将静态文件指定到某个 ...

  9. java oop第10章_JDBC03(MVC分层模式)

    引言:在进行程序开发的时候,为了更加利于程序的管理我们引入了新的开发模式MVC分层模式,即按功能将程序代码分别分为M(Model模型).V(View视图).C(Controller控制器)三个组成部分 ...

  10. 微信小程序中实现左右滑动图片翻页

    页面代码 <swiper class="container" indicator-dots="{{indicatordots}}" autoplay=&q ...