自动化运维工具ansible简单介绍

一.Ansible介绍
Ansible 简单的说是一个配置管理系统(configuration management system)。你只需要可以使用 ssh 访问你的服务器或设备就行。它也不同于其他工具,因为它使用推送的方式,而不是像 puppet 等 那样使用拉取安装agent的方式。ansible可以帮助我们完成一些批量任务,或者完成一些需要经常重复的工作。
? 模块化:调用特定的模块,完成特定任务
? 有Paramiko,PyYAML,Jinja2(模板语言)三个关键模块
? 支持自定义模块
? 基于Python语言实现
? 部署简单,基于python和SSH(默认已安装),agentless
? 安全,基于OpenSSH
? 支持playbook编排任务
? 幂等性:一个任务执行1遍和执行n遍效果一样,不因重复执行带来意外情况
? 无需代理不依赖PKI(无需ssl)
? 可使用任何编程语言写模块
? YAML格式,编排任务,支持丰富的数据结构
? 较强大的多层解决方案

工作原理

各个模块介绍
PLAYBOOKS:任务剧本(任务集),编排定义Ansible任务集的配置文件,由Ansible顺序依次执行,通常是JSON格式的YML文件

INVENTORY:Ansible管理主机的清单/etc/anaible/hosts

MODULES:Ansible执行命令的功能模块,多数为内置的核心模块,也可自定义,ansible-doc –l 可查看模块

PLUGINS:模块功能的补充,如连接类型插件、循环插件、变量插件、过滤插件等,该功能不常用

API:供第三方程序调用的应用程序编程接口

ANSIBLE: 组合INVENTORY、 API、 MODULES、PLUGINS的绿框,可以理解为是ansible命令工具,其为核心执行工具

二.安装
1.环境
redhat6.5
server1 190.168.3.241
server2 190.168.3.242
server3 190.168.3.243

server1主控制模块
[[email protected] ansible]# yum install -y epel-relase

                                       yum instll ansible -y

2.配置 vim hosts

可以写域名,需要dns解析

后面还可以加配置参数
举例:
[test]
190.168.3.242 ansible_ssh_port=2222 ansible_ssh_user=manager 被管理主机端口号和用户
190.168.3.243 ansible_ssh_private_key_file=/home/example/.ssh/aws.pem 指定key文件

host_key_check=False 跳过ssh连接过程中要输入的yes/no

3.简单命令练习

ansible <host-pattern> [-m module_name] [options]
指令 匹配规则的主机清单 -m 模块名 选项

--version 显示版本
-a 模块参数(如果有)
-m module 指定模块,默认为command
-v 详细过程 –vv -vvv更详细
--list-hosts 显示主机列表,可简写--list
-k, --ask-pass 提示连接密码,默认Key验证
-K,--ask-become-pass 提示使用sudo密码
-C, --check 检查,并不执行
-T, --timeout=TIMEOUT 执行命令的超时时间,默认10s
-u, --user=REMOTE_USER 执行远程执行的用户
-U, SUDO_USER, --sudo-user 指定sudu用户
-b, --become 代替旧版的sudo 切换
ansible-doc: 显示模块帮助
ansible-doc [options] [module...]

-a 显示所有模块的文档
-l, --list 列出可用模块
-s, --snippet 显示指定模块的简要说明

[[email protected] ansible]#ansible -i hosts server -u root -m command -a ‘ls /root‘ -k
190.168.3.242 | SUCCESS | rc=0 >>
anaconda-ks.cfg
install.log
install.log.syslog

190.168.3.243 | SUCCESS | rc=0 >>
anaconda-ks.cfg
install.log
install.log.syslog

-k要输入密码,所以要做免密
[[email protected] ansible]#ssh-keygen
[[email protected] ansible]#ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
[[email protected] ansible]#ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

免密完测试
简写命令
[[email protected] ansible]# ansible test -a ‘ls /root‘
190.168.3.243 | SUCCESS | rc=0 >>
anaconda-ks.cfg
install.log
install.log.syslog

190.168.3.242 | SUCCESS | rc=0 >>
anaconda-ks.cfg
install.log
install.log.syslog

[[email protected] ansible]# ansible test -m ping
190.168.3.243 | SUCCESS => {
"changed": false,
"ping": "pong"
}
190.168.3.242 | SUCCESS => {
"changed": false,
"ping": "pong"
}

4.分组写法

[[email protected] ansible]# vim hosts
[[email protected] ansible]# ansible web -m ping
190.168.3.243 | SUCCESS => {
"changed": false,
"ping": "pong"
}
190.168.3.242 | SUCCESS => {
"changed": false,
"ping": "pong"
}
[[email protected] ansible]# ansible web_nginx -m ping
190.168.3.242 | SUCCESS => {
"changed": false,
"ping": "pong"
}

三.简单模块介绍
[[email protected] ansible]# ansible-doc -l 显示所有安装模块
[[email protected] ansible]# ansible-doc -s user 显示其中的user模块

1.setup模块 查看远程主机的基本信息
[[email protected] ansible]# ansible web_nginx -m setup

2.ping 远程主机的运行情况
[[email protected] ansible]# ansible web_nginx -m ping
190.168.3.242 | SUCCESS => {
"changed": false,
"ping": "pong"
}

3.file 设置文件属性
force:需要在两种情况下强制创建软链接,一种是源文件不存在但之后会建立的情况下;另一种是目标软链接已存在,需要先取消之前的软链,然后创建新的软链,有两个选项:yes|no

group:定义文件/目录的属组

mode:定义文件/目录的权限

owner:定义文件/目录的属主

path:必选项,定义文件/目录的路径

recurse:递归的设置文件的属性,只对目录有效

src:要被链接的源文件的路径,只应用于state=link的情况

dest:被链接到的路径,只应用于state=link的情况

state:

directory:如果目录不存在,创建目录

file:即使文件不存在,也不会被创建

link:创建软链接

hard:创建硬链接

touch:如果文件不存在,则会创建一个新的文件,如果文件或目录已存在,则更新其最后修改时间

absent:删除目录、文件或者取消链接文件

例子:
做一个软连接

删除软连接

创建文件

原文地址:http://blog.51cto.com/anfishr/2176243

时间: 2024-10-05 04:58:39

自动化运维工具ansible简单介绍的相关文章

自动化运维工具ansible详细介绍以模块的使用

1.anisble 简介anisble 是一款自动化运维工具,基于Python开发,集合了众多运维工具(puppet.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能.ansible只是提供一种框架.主要包括:(1)连接插件:负责和被监控端实现通信:(2)host inventory :指定操作的主机,是一个配置文件里面定义监控的主机(3)各种模块核心模块,command 模块,自定义模块.(4)借助于插件完成记录日志邮件等功能:(5)playboo

自动化运维工具ansible详细介绍

在学习批量管理软件时,首先要明确的知道自己需要什么,网上大神很多,他们都研究到源码上了,写了很多介绍绚丽功能的文档,但其实那些功能基本上我们都用不到,经常被各种文档弄得头脑发晕,此文就是为了简单直白的告诉大家ansible的功能,满足大家的基本需求. 首先确认批量管理我们需要什么:无外乎主机分组管理.实时批量执行命令或脚本.实时批量分发文件或目录.定时同步文件等. 目录 1.      ansible与saltstack对比... 2.      ansible安装... 3.      ans

自动化运维工具Ansible详细部署 (转载)

自动化运维工具Ansible详细部署 标签:ansible 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://sofar.blog.51cto.com/353572/1579894 ========================================================================================== 一.基础介绍 ===========================

自动化运维工具——ansible详解案例分享

自动化运维工具--ansible详解案例分享(一)目录ansible 简介ansible 是什么?ansible 特点ansible 架构图ansible 任务执行ansible 任务执行模式ansible 执行流程ansible 命令执行过程ansible 配置详解ansible 安装方式使用 pip(python的包管理模块)安装使用 yum 安装ansible 程序结构ansible配置文件查找顺序ansible配置文件ansuble主机清单ansible 常用命令ansible 命令集a

自动化运维工具Ansible-基础介绍(一)

自动化运维工具Ansible-基础介绍 1.简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能.ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.主要包括:(1).连接插件connection plugins:负责和被监控端实现通信:(2).host

3.1 自动化运维工具ansible

自动化运维工具ansible 运维自动化发展历程及技术应用 Iaas 基础设施即服务Pass 平台服务SaaS 软件即服务 云计算工程师核心职能 Linux运维工程师职能划分 自动化动维应用场景 文件传输命令执行 应用部署配置管理任务流编排 企业实际应用场景分析 1 Dev开发环境 使用者:程序员功能:程序员开发软件,测试BUG的环境管理者:程序员123 2 测试环境 使用者:QA测试工程师功能:测试经过Dev环境测试通过的软件的功能管理者:运维说明:测试环境往往有多套,测试环境满足测试功能即可

自动化运维工具-Ansible基础

目录 自动化运维工具-Ansible基础 自动化运维的含义 Ansible 基础及安装 Ansible的架构 Ansible的执行流程 ansible配置文件 ansible Inventory(主机清单文件) Ansible ad-hoc ansible常用模块 实战 自动化运维工具-Ansible基础 自动化运维的含义 1.手动运维时代 2.自动化运维时代 3.自动化运维工具给运维带来的好处 Ansible 基础及安装 1.什么是Ansible Ansible是一个自动化统一配置管理工具 2

自动化运维工具Ansible架构部署应用及playbooks简单应用

在日常服务器运维中,我们经常要配置相同的服务器配置,前期我们都是一台一台的去配置,这种方法操作主要应对于服务器数量不多且配置简单的情况还可以继续这样操作,如果我们后期维护几百服务器或者几万服务器呢? 我应该怎样去快速配置服务器呢?如果需要手动的每台服务器进行安装配置将会给运维人员带来许多繁琐而又重复的工作同时也增加服务器配置的异常,至此自动化运维工具解决我们的瓶颈---Ansible工具. Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfeng

轻量级自动化运维工具ansible之一:介绍及初步使用

一.常见的自动化运维工具: OS Provisioning:PXE, Cobbler OS Config:puppet, saltstack, chef, func Task Exec:fabric, saltstack, func Program Deployment:fabric 管理主机控制被管理节点的方式: agent:被管理节点上需要安装代理程序以接受管理主机的操作:如puppet, func agentless:被管理节点不需安装代理程序,管理主机借助ssh传递操作指令,如ansib