官方:https://www.ansible.com/

一 简介

Ansible is a radically simple IT automation engine that automates cloud provisioning, configuration management, application deployment, intra-service orchestration, and many other IT needs.

It uses no agents and no additional custom security infrastructure, so it's easy to deploy - and most importantly, it uses a very simple language (YAML, in the form of Ansible Playbooks) that allow you to describe your automation jobs in a way that approaches plain English.

ansible的好处是快速、简单、易用、不需要安装agent,可以方便的用于配置管理和应用部署等自动化场景;

二 安装

1 安装

yum install -y ansible

2 测试

# ansible --version

ansible 2.7.5

config file = /etc/ansible/ansible.cfg

configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']

ansible python module location = /usr/lib/python2.7/site-packages/ansible

executable location = /usr/bin/ansible

python version = 2.7.5 (default, Jul 13 2018, 13:06:57) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)]

3 配置目录结构

# ls /etc/ansible/
ansible.cfg hosts roles

三 使用

首先在/etc/ansible/hosts中根据部署结构将server划分到多个group,然后可以针对某个group执行某些操作;

1 添加server分组配置

vi /etc/ansible/hosts

[all-servers]
192.168.0.54
192.168.0.55
192.168.0.56

以上配置了一个server_group名为all-servers,其中包含3台server;

可以通过--list查看某个server_group下的所有server:

# ansible all-servers --list

hosts (3):

192.168.0.54

192.168.0.55

192.168.0.56

2 执行操作

格式

ansible $server_group -m $module_name -a $module_args

例如ping:

# ansible all-servers -m ping

192.168.0.54 | SUCCESS => {

"changed": false,

"ping": "pong"

}

192.168.0.55 | SUCCESS => {

"changed": false,

"ping": "pong"

}

192.168.0.56 | SUCCESS => {

"changed": false,

"ping": "pong"

}

例如command:

# ansible all-servers -m command -a "date"
192.168.0.54 | CHANGED | rc=0 >>
Sun Jan 13 17:14:06 CST 2019

192.168.0.56 | CHANGED | rc=0 >>
Sun Jan 13 17:14:06 CST 2019

192.168.0.55 | CHANGED | rc=0 >>
Sun Jan 13 17:14:06 CST 2019

具体的module_name有哪些?可以通过命令查看

# ansible-doc -l

某个module_name的帮助也可以通过命令查看

# ansible-doc $module_name

比如:

# ansible-doc shell

> SHELL    (/usr/lib/python2.7/site-packages/ansible/modules/commands/shell.py)

The `shell' module takes the command name followed by a list of space-delimited arguments. It is almost exactly like the [command] module but runs the command

through a shell (`/bin/sh') on the remote node. For Windows targets, use the [win_shell] module instead.

# ansible-doc copy

> COPY    (/usr/lib/python2.7/site-packages/ansible/modules/files/copy.py)

The `copy' module copies a file from the local or remote machine to a location on the remote machine. Use the [fetch] module to copy files from remote locations to

the local box. If you need variable interpolation in copied files, use the [template] module. For Windows targets, use the [win_copy] module instead.

常用module:ping,command,shell,copy,file,script,cron等...

比如向某个group的所有server拷贝文件命令:

# ansible all-servers -m copy -a 'src=/tmp/1.log dest=/tmp/'

比如查看某个group的所有server的磁盘占用情况:

# ansible all-servers -m shell -a "df -h"

另外也可以直接指定ip来操作,比如:

# ansible 192.168.0.55 -m ping

其实如果只需要远程执行命令,ssh也可以

ssh 192.168.0.55 "date"

【原创】运维基础之Ansible(1)简介、安装和使用的更多相关文章

  1. 自动化运维工具之 Ansible 介绍及安装使用

    一.初识Ansible 介绍: Absible 使用 模块(Modules)来定义配置任务.模块可以用标准脚本语言(Python,Bash,Ruby,等等)编写,这是一个很好的做法,使每个模块幂等.A ...

  2. 【Apache运维基础(1)】Apache的安装与使用

    安装 yum -y install httpd httpd-devel # 在Ubuntu里面叫做Apache2,输入localhost能打开就算成功了 额...当然专业的运维还是老老实实的去编译吧; ...

  3. 【原创】运维基础之Ansible(2)离线安装

    1 在一个能访问远程repo的服务器上执行,下载ansible及相关依赖的rpm包 # mkdir ansible# yum install --downloadonly --downloaddir= ...

  4. 【原创】运维基础之yum离线环境安装软件

    首先查看系统版本号,然后根据版本号从 CentOS-7-x86_64-DVD-1708.iso 和 CentOS-7-x86_64-Everything-1708.iso 根据需要选择一个下载,我这里 ...

  5. 自动化运维工具之ansible

    自动化运维工具之ansible   一,ansible简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fab ...

  6. linux运维基础知识

    linux运维基础知识大全 一,序言 每一个微不足道的知识,也是未来的铺垫.每一份工作的薪资职位,也是曾经努力的结果. 二,服务器 1,运维人员工作职责: 1)保证数据不丢失:2)保证服务器24小时运 ...

  7. 自动化运维工具:ansible

    自动化运维工具:ansible Ansible(1):简介和基本概念 Ansible(2):安装配置 Ansible(3):ansible资源清单管理 Ansible(4):常用模块

  8. Linux运维基础

    一.服务器硬件 二.Linux的发展史 三.Linux的系统安装和配置 四.Xshell的安装和优化 五.远程连接排错 六.Linux命令初识 七.Linux系统初识与优化 八.Linux目录结构 九 ...

  9. 第一阶段·Linux运维基础-第1章·Linux基础及入门介绍

    01-课程介绍-学习流程 02-服务器硬件-详解 03-服务器核心硬件-服务器型号-电源-CPU 01-课程介绍-学习流程 1.1. 光看不练,等于白干: 1.2 不看光练,思想怠慢: 1.3 即看又 ...

随机推荐

  1. Winform开发框架中工作流模块的动态处理

    在工作流处理表中,首先我们区分流程模板和流程实例两个部分,这个其实就是类似模板和具体文档的概念,我们一份模板可以创建很多个类似的文档,文档样式结构类似的.同理,流程模板实例为流程实例后,就是具体的一个 ...

  2. Math的一些方法

    Math.abs(数值) 把()内的值变为正数 Math.ceil(4.3) 向上取整 // 5 Math.floor(4.3) 向下取整 // 4 Math.round(4.3) 四舍五入取整 // ...

  3. 判断语句之if...else

    判断语句之if...else if语句第二种格式: if...else: 格式: 执行流程 首先判断关系表达式看其结果是true还是false 如果是true就执行语句体1 如果是false就执行语句 ...

  4. Java 向MySql 插入日期和时间正确的姿势

    Mysql和Java之间时间对应关系表: date              java.sql.Date Datetime        java.sql.Timestamp Timestamp    ...

  5. 关于mysql中的count()函数

    1.count()函数是用来统计表中记录的一个函数,返回匹配条件的行数. 2.count()语法: (1)count(*)---包括所有列,返回表中的记录数,相当于统计表的行数,在统计结果的时候,不会 ...

  6. Oracle物化视图的创建及使用

    oracle物化视图 一.oracle物化视图基本概念  物化视图首先需要创建物化视图日志,  oracle依据用户创建的物化视图日志来创建物化视图日志表,  物化视图日志表的名称为mlog$_后面跟 ...

  7. Linux取代ifconfig指令的ip指令

  8. jQuery之标签操作和返回顶部、登录验证、全选反选、克隆示例

    一.样式操作 1.JQ中的样式类 somenode.addClass();// 添加指定的CSS类名. somenode.removeClass();// 移除指定的CSS类名. somenode.h ...

  9. 笔记本装双系统!win10+Linux!所有的坑自己一个个爬过来,纪念一下。

    笔记本装双系统!win10+Linux!所有的坑自己一个个爬过来,纪念一下. 2018年09月16日 21:27:19 Corax_2ven 阅读数:14038   写在前面,装了大概5遍,装了删删了 ...

  10. Js元素拖拽功能实现

    Js元素拖拽功能实现 需要解决的问题 最近项目遇到了一个问题,就是用户某个操作需要弹出一个自定义的内容输入框,但是有个缺点,当浏览太大的时候没办法点击确认和取消按钮,应为这个弹出框是采用绝对定位的,取 ...