概述

Ansible是一种自动化运维管理工具,无需安装客户端,通过SSH协议与节点通信。

架构

  由上图可以看出Ansible由5个部分组成

  1. Ansible:核心
  2. Inventory:定义管理主机的清单
  3. Modules:包括Ansible自带的核心模块及自定义模块
  4. Playbooks:Ansible的配置,部署和编排语言(YAML格式)
  5. 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简介的更多相关文章

  1. 批量搞机(一):ansible简介、ansible安装

    一.ansible简介 Ansible是2013年推出的一款IT自动化和DevOps软件,目前由Redhat已签署Ansible收购协议.其是基于Python研发,糅合了很多老运维工具的优点实现了批量 ...

  2. ansible简介安装配置

    ansible简介 ansible是一款,自动化运维管理工具.顾名思义是用于批量去管理及安装服务及批量管理主机. ansible与saltstack对比 ansible优点:配置简单,部署容易除主管理 ...

  3. Ansible简介及常用模块

    一.基础介绍 1.简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置. ...

  4. Ansible - 简介和应用自动化基础实践

    installAnsible简介和应用自动化基础实践 一.引入: 1.1  如官方定义,Ansible is The simplest way to automate apps and IT infr ...

  5. Ansible 简介

    Ansible 是一个开源的基于 OpenSSH 的自动化配置管理工具.可以用它来配置系统.部署软件和编排更高级的 IT 任务,比如持续部署或零停机更新.Ansible 的主要目标是简单和易用,并且它 ...

  6. 001. Ansible简介

    一 简介 Ansible是一款极其简单的自动化运维工具, 基于Python开发, 集合了众多运维工具(puppet, cfengine, chef, func, fabric)的优点. 实现了批量系统 ...

  7. 1. Ansible 简介

    目录 1. Ansible 是什么? 2. Ansible 特性 3. 控制主机需求 4. 被管理节点需求 1. Ansible 是什么? Ansible 是一个配置管理系统(configuratio ...

  8. ansible简介,简单实用

    Ansible ansilbe是实现自动化运维的工具,基于python开发,实现批量系统配置,批量程序部署,批量运行命令等功能. ansible是基于模块工作的,自身是没有批量部署的能力.真正具有批量 ...

  9. 1、Ansible简介及简单安装、使用

    参考Ansible权威指南:https://ansible-tran.readthedocs.io/en/latest/index.html 以下内容学习自马哥教育 Ansible: 运维工作:系统安 ...

随机推荐

  1. es6+react环境搭建

    工具说明 Node Koa React Webpack 项目结构 - build 客户端代码的构建文件目录 - config 项目的配置文件 - docs 项目相关的文档目录 - lib 服务端库文件 ...

  2. Java7并发编程实战(一) 线程的中断

    控制线程中断的方法一般常规是定义一个布尔值,然后while(布尔值) 去执行,当想停止该线程时候,把布尔值设为false. 这里我们来看第二种,Interrupt 该例子模拟一个线程从1打印到10,然 ...

  3. [【codechefCHSEQ22】Chef and Favourite Sequence(并查集)

    题目:http://hzwer.com/3419.html 题意:给你一个全是0的数列,有m种操作[Li,Ri],每次操作就将下标处于[Li,Ri]的元素取反.你可以选若干个操作来使这个数列最后变成别 ...

  4. [BZOJ3875][AHOI2014]骑士游戏(松弛操作)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3875 分析: 类似于spfa求最短路,设d[i]表示完全消灭i号怪物的最小花费,我们对 ...

  5. 求height数组

    procedure getheight; var i,po1,po2:longint; begin to len do begin ; po1:=i;po2:=sa[rank[i]-]; while ...

  6. Android回调

    当A页面跳往B页面做一些操作后,再从B页面回到A页面时,A页面想要回去一些B页面操作的数据时,我们一般会使用回调. 1 public class MainActivity extends Activi ...

  7. linux 系统下 android studio 获取SHA1

    百度地图申请key的时候需要填写包名和SHA1 包名比较好找可以在 AndroidManifest.xml 文件中找到 SHA1的获取方式有两种可以在android studio 下面选择Termin ...

  8. canvas缓动2

    同之前的缓动原理.这里将终点换成鼠标,做出跟随效果 var canvas = document.getElementById("canvas"); var cxt=canvas.g ...

  9. Linux 性能优化之 IO 子系统

    本文介绍了对 Linux IO 子系统性能进行优化时需要考虑的因素,以及一些 IO 性能检测工具. 本文的大部分内容来自 IBM Redbook - Linux Performance and Tun ...

  10. Android 自定义Popupwindow 注意事项,手机和平板的区别

    首先自定义ppw是要继承Popupwindow 的 而要成功的显示出自定义的ppw就必须实现下面的三句代码 // 必要的三要素下面,不然popWind显示不出来 this.setContentView ...