随笔-ansible-1
系统下所有的操作,从运维操作角度划分为两类:
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的更多相关文章
- Ansible随笔8
自定义模块的开发模式 1.决定自定义模块的存放路径 编辑/etc/ansible/ansible.cfg文件,修改library = /usr/share/ansible/. 这样就告诉ansible ...
- Ansible playbook API 开发 调用测试
Ansible是Agentless的轻量级批量配置管理工具,由于出现的比较晚(13年)基于Ansible进行开发的相关文档较少,因此,这里通过一些小的实验,结合现有资料以及源码,探索一下Ansible ...
- ansible学习
声明:本博客内容是根据惨绿少年内容实践随笔,地址:http://www.cnblogs.com/clsn/p/7743792.html#comment_form 1.ansible介绍 Ansible ...
- Ansible 利用playbook批量部署mariadb
环境说一下 192.168.30.21 ansible 192.168.30.25 client1 192.168.30.26 client2 这里我的ansible环境已经部 ...
- Ansible实现zabbix服务器agent端批量部署
项目需求:由于搭建zabbix,需要每台服务器都需要安装监控端(agent)正常的的操作是一台一台去安装,这样确实有点浪费时间,这里为大家准备了一款开源 的自动化运维工具Ansible,相信大家也很熟 ...
- 利用ansible书写playbook搭建HAProxy+Keepalived+PXC负载均衡和高可用的PXC环境续
ansible.playbook.haproxy.keepalived.PXC haproxy+keepalived双主模式调度pxc集群 HAProxy介绍 反向代理服务器,支持双机热备支持虚拟主机 ...
- 如何利用ansible callback插件对执行结果进行解析
最近在写一个批量巡检工具,利用ansible将脚本推到各个机器上执行,然后将执行的结果以json格式返回来. 如下所示: # ansible node2 -m script -a /root/pyth ...
- AI人工智能系列随笔
初探 AI人工智能系列随笔:syntaxnet 初探(1)
- 【置顶】CoreCLR系列随笔
CoreCLR配置系列 在Windows上编译和调试CoreCLR GC探索系列 C++随笔:.NET CoreCLR之GC探索(1) C++随笔:.NET CoreCLR之GC探索(2) C++随笔 ...
- C++随笔:.NET CoreCLR之GC探索(4)
今天继续来 带大家讲解CoreCLR之GC,首先我们继续看这个GCSample,这篇文章是上一篇文章的继续,如果有不清楚的,还请翻到我写的上一篇随笔.下面我们继续: // Initialize fre ...
随机推荐
- selenium之 文件上传所有方法整理总结
本文转载“灰蓝”的原创博客.http://blog.csdn.net/huilan_same/article/details/52439546 文件上传是所有UI自动化测试都要面对的一个头疼问题,今天 ...
- JAVA API 实现hdfs文件操作
java api 实现hdfs 文件操作会出现错误提示: Permission denied: user=hp, access=WRITE, inode="/":hdfs:supe ...
- mtv 与mvc
1.MVC与MTV模型 MVC模型 Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的.松耦合的方式连接在一起,模型 ...
- 30-Ubuntu-用户权限-01-用户和权限的基本概念
1.用户 用户是Linux系统工作中重要的一环,用户管理包括用户和组管理. 在Linux系统中,不论是由本机或是远程管理登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限. ...
- beforeEach的深入研究,及beforeEach和beforeRouteEnter区别?
之前一直困惑它俩的区别,也没找到合适的文档,直到有天看到一篇博客,一起来学习下: 之前是在created钩子函数里面,发现这是在今天当前页面之后了.先回顾一下钩子函数beforeEach const ...
- 十分钟学习 react配套的类型检测库——prop-types的运用
js 有时在定义变量的类型为number 或string 时并不会报错,所以prop-types 是专门用来检测react ,以前的版本是把它放到react架构里面 ,现在作为一个独立的库搬出来了,跟 ...
- C语言结构体指针
#include <stdio.h> int main() { /*************************************************** *结构体指针:指向 ...
- MySQL高可用配置(主从复制)
主从复制包含两个步骤: 在 master 主服务器(组)上的设置,以及在 slave 从属服务器(组)上的设置. 环境: MASTER: 192.168.155.101SLAVE: 192.168.1 ...
- 现如今,最热门的13个Java微服务框架
曾经的 服务器领域 有许多不同的芯片架构???有哪些芯片架构???和操作系统???,经过长期发展,Java的“一次编译,到处运行”使得它在服务器领域找到一席之地,成为程序员们的最爱. 本文,我们将和大 ...
- js字符与ASCII码互转的方法
大写字母A-Z对应的ASCII码值是65-90 小写字母a-z对应的ASCII码值是97-122 将字母转为ascii码的方法: 将ascii码转为对应字母的方法: