Ansible简介
概述
Ansible是一种自动化运维管理工具,无需安装客户端,通过SSH协议与节点通信。
架构
由上图可以看出Ansible由5个部分组成
- Ansible:核心
- Inventory:定义管理主机的清单
- Modules:包括Ansible自带的核心模块及自定义模块
- Playbooks:Ansible的配置,部署和编排语言(YAML格式)
- Plugins:完成模块功能的补充,包括连接插件、邮件插件
安装
yum install ansible or pip install ansible
在管理节点上python要大于等于2.4,如果远端节点python版本小于2.5,需要安装python-simplejson
如果远端节点开启了SELinux,copy/file/template等相关模块必须在远端节点安装了libselinux-python后才能使用
配置
配置文件:/etc/ansible/ansible.cfg
[defaults] inventory = /etc/ansible/hosts # 清单文件
forks = # 设置多少进程数与远端节点通信
sudo_user = root # sudo用户
remote_port = # SSH端口号
role_path = /etc/ansible/roles # roles的目录,多个目录以冒号分隔
host_key_checking = True # 第一次执行时是否忽略主机SSH KEY验证
remote_user = root # 远端执行用户
清单
默认清单为/etc/ansible/hosts,-i <path>选项可以指定其它清单,[]里面定义Groups,下面是Hosts
[webservers]
foo.example.com
bar.example.com [dbservers]
one.example.com
two.example.com
主机名alias,主机静态IP,主机ssh密码(不安全,建议使用SSH keys)
[test]
node1 ansible_host=192.168.0.100 ansible_ssh_pass="password"
node2 ansible_host=192.168.0.101 ansible_ssh_pass="password"
OR
[test]
192.168.0.100
192.168.0.101
[test:vars]
ansible_port=
ansible_user=xxx
ansible_ssh_pass=xxx
ansible_become_method=sudo
ansible_become=true
ansible_become_pass=xxx
使用
1、Ad-Hoc Commands
ad-hoc command是一种快速执行的模式,且不会保存
2、Playbooks
Playbooks是完全不同于adhoc的执行模式,格式是YAML,每个playbook由一个或更多的'plays'组成
just one play:
---
- hosts: webservers
remote_user: root
tasks:- name: write the apache config file
template: src=/srv/httpd.j2 dest=/etc/httpd.conf
notify:
- restart apache
handlers:
- name: restart apache
service: name=httpd state=restarted
Basics
Hosts and Users
---
- hosts: webservers
remote_user: root
Tasks List
tasks:
- name: make sure apache is running
service: name=httpd state=started
Handlers: Running Operations On Change
notify:
- restart apache
handlers:
- name: restart apache
service: name=httpd state=restarted
执行Playbook
ansible-playbook playbook.yml
Usage
ansible
Usage: ansible <host-pattern> [options] Options:
-a MODULE_ARGS # 模块参数
-m MODULE_NAME # 模块名
ansible-playbook
Usage: ansible-playbook playbook.yml Options:
-C, --check # 不执行,只检查远端节点的状态值
-D, --diff # 使用文件,模板这些模块的时候,列出两个文件的不同之处,最好与--check结合使用
--syntax-check # 检查playbook的语法是否正确
ansible-doc # 查看模块的具体用法
Usage: ansible-doc [options] [module...] Options:
-l, --list # 列出所有的模块
-v, --verbose # 输出更详细的模式
Ansible简介的更多相关文章
- 批量搞机(一):ansible简介、ansible安装
一.ansible简介 Ansible是2013年推出的一款IT自动化和DevOps软件,目前由Redhat已签署Ansible收购协议.其是基于Python研发,糅合了很多老运维工具的优点实现了批量 ...
- ansible简介安装配置
ansible简介 ansible是一款,自动化运维管理工具.顾名思义是用于批量去管理及安装服务及批量管理主机. ansible与saltstack对比 ansible优点:配置简单,部署容易除主管理 ...
- Ansible简介及常用模块
一.基础介绍 1.简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置. ...
- Ansible - 简介和应用自动化基础实践
installAnsible简介和应用自动化基础实践 一.引入: 1.1 如官方定义,Ansible is The simplest way to automate apps and IT infr ...
- Ansible 简介
Ansible 是一个开源的基于 OpenSSH 的自动化配置管理工具.可以用它来配置系统.部署软件和编排更高级的 IT 任务,比如持续部署或零停机更新.Ansible 的主要目标是简单和易用,并且它 ...
- 001. Ansible简介
一 简介 Ansible是一款极其简单的自动化运维工具, 基于Python开发, 集合了众多运维工具(puppet, cfengine, chef, func, fabric)的优点. 实现了批量系统 ...
- 1. Ansible 简介
目录 1. Ansible 是什么? 2. Ansible 特性 3. 控制主机需求 4. 被管理节点需求 1. Ansible 是什么? Ansible 是一个配置管理系统(configuratio ...
- ansible简介,简单实用
Ansible ansilbe是实现自动化运维的工具,基于python开发,实现批量系统配置,批量程序部署,批量运行命令等功能. ansible是基于模块工作的,自身是没有批量部署的能力.真正具有批量 ...
- 1、Ansible简介及简单安装、使用
参考Ansible权威指南:https://ansible-tran.readthedocs.io/en/latest/index.html 以下内容学习自马哥教育 Ansible: 运维工作:系统安 ...
随机推荐
- Linux 网络编程详解八
TCP/IP协议三次握手机制 TCP/IP是全双工通道,两端都可以读写,三次握手机制就是验证TCP/IP是否是全双工通道 1.客户端调用connect()函数,阻塞客户端进程,客户端向服务器发送数据包 ...
- SQL Server 百万级数据提高查询速度的方法
1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉 ...
- jboss EAP 6.2 + Message Drive Bean(MDB) 整合IBM Webshpere MQ 7.5
上一篇我们知道了消息驱动Bean的基本用法,实际大型分布式企业应用中,往往会采用高性能的商业Queue产品,比如IBM Webshpere MQ(目前最新版本是7.5 ),下面讲解下如何在Jboss ...
- 虾皮工作室QQ群列表
各位博友: 本群不仅仅是提供好的资料,更重要是提供平台,提供解决问题的方法和思路.求人不如求己,掌握合理的方法和方式才是不断进步的根本.看我的文档,不单单是看内容,更应该从整理的方式和角度是深思,去想 ...
- 跟我学习Storm_Storm简介
Storm是由专业数据分析公司BackType开发的一个分布式实时数据处理软件,可以简单.高效.可靠地处理大量的数据流.Twitter在2011年7月收购该公司,并于2011年9月底正式将Storm项 ...
- swift-sharesdk集成微信、Facebook第三方登录
好久没有写博客了.最近忙得没有时间更新博客,很忙很忙. 今天就把自己做过的第三方集成和大家分享一下,请大家多多指教. 第一步: 一.获取AppKey(去官方平台注册) 二.下载SDK 三.快速集成 第 ...
- 读懂IL代码就这么简单(三)完结篇
一 前言 写了两篇关于IL指令相关的文章,分别把值类型与引用类型在 堆与栈上的操作区别详细的写了一遍 这第三篇也是最后一篇,之所以到第三篇就结束了,是因为以我现在的层次,能理解到的都写完了,而且个人认 ...
- redis/分布式文件存储系统/数据库 存储session,解决负载均衡集群中session不一致问题
先来说下session和cookie的异同 session和cookie不仅仅是一个存放在服务器端,一个存放在客户端那么笼统 session虽然存放在服务器端,但是也需要和客户端相互匹配,试想一个浏览 ...
- 《深入理解Spark:核心思想与源码分析》(第2章)
<深入理解Spark:核心思想与源码分析>一书前言的内容请看链接<深入理解SPARK:核心思想与源码分析>一书正式出版上市 <深入理解Spark:核心思想与源码分析> ...
- XSS attack
<html> <form action="" method="post"> <input type="text" ...