自动化运维工具之Ansible(二)

一、Ansible基础安装

通过Yum安装rpm使用与epel6,7等。但是必须安装Python2.4或者更高的版本的Python。

添加源:

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

yum install ansible -y

二、Ansible配置

1、ssh面密钥登陆设置

##生成公钥/私钥

ssh-keygen -t rsa

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

chmod 600 /root/.ssh/authorized_keys

2、ansible配置

#主机组定义

vim /etc/ansible/hosts

[web-server]

192.168.6.80

192.168.6.81

192.168.6.82

192.168.6.83

192.168.6.84

3、测试(以本机和81为测试用例)

#ansible web-server -m ping

说明:第一次运行时,需要输入一下“yes”进行公钥验证,后续无需再次输入。

三、常用模块使用

1、setup

##用来查看远程主机的一些基本信息

2、ping

##用来测试远程主机的运行状态

#ansible web-server -m ping

3、file

##设置文件的属性

相关选项如下

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

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

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

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

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

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

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

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

state:

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

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

link:创建软链接

hard:创建硬链接

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

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

示例:

##远程文件符号链接创建

#ansible web-server -m file -a "src=/etc/resolv.conf dest=/tmp/resolv.conf state=link"

#远程查看文件信息

#ansible web-server -m command -a ‘ls -la /tmp/resolv.conf‘

#删除符号链接

#ansible web-server -m file -a "src=/etc/resolv.conf dest=/tmp/resolv.conf state=absent"

4、copy

#复制文件到远程主机

相关选项如下:

backup:在覆盖之前,将源文件备份,备份文件包含时间信息。有两个选项:yes|no

content:用于替代“src”,可以直接设定指定文件的值

dest:必选项。要将源文件复制到的远程主机的绝对路径,如果源文件是一个目录,那么该路径也必须是个目录

directory_mode:递归设定目录的权限,默认为系统默认权限

force:如果目标主机包含该文件,但内容不同,如果设置为yes,则强制覆盖,如果为no,则只有当目标主机的目标位置不存在该文件时,才复制。默认为yes

others:所有的file模块里的选项都可以在这里使用

src:被复制到远程主机的本地文件,可以是绝对路径,也可以是相对路径。如果路径是一个目录,它将递归复制。在这种情况下,如果路径使用“/”来结尾,则只复制目录里的内容,如果没有使用“/”来结尾,则包含目录在内的整个内容全部复制,类似于rsync。

示例:

##将本地文件“/etc/ansible/ansible.cfg”复制到远程服务器

#ansible web-server -m copy -a "src=/etc/ansible/ansible.cfg dest=/tmp/ansible.cfg owner=root group=root mode=0644"

5、command

##在远程主机上执行命令

相关选项如下:

creates:一个文件名,当该文件存在,则该命令不执行

free_form:要执行的linux指令

chdir:在执行指令之前,先切换到该目录

removes:一个文件名,当该文件不存在,则该选项不执行

executable:切换shell来执行指令,该执行路径必须是一个绝对路径

示例:ansible web-server -m command -a ‘date‘

6、shell

##切换到某个shell执行脚本,参数与command相同

示例:

##现在本地创建一个shell脚本

#vim /root/test.sh

#!/bin/sh

date +%F_%H:%M:%S

将创建的脚本文件分发到远程

#ansible web-server -m copy -a "src=/root/test.sh dest=/root/test.sh owner=root group=root mode=0755"

远程执行:

#ansible web-server -m shell -a "/root/test.sh"

更多模块可以参考:

#ansible-doc -l

网站:http://docs.ansible.com/ansible/

时间: 2024-10-24 15:37:41

自动化运维工具之Ansible(二)的相关文章

自动化运维工具之ansible的简单应用

ansible: ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能.ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,例如shell,copy,ping等,ansible只是提供一种框架.ansible的主要特性: 模块化:调用特定的模块,完成特定任务 基于Python语言实现,由Pa

自动化运维工具之ansible

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

自动化运维工具之ansible基础入门

自动化运维工具常用的有 ansible  saltstack  puppet等 ,前两者都是基于python开发,puppet基于ruby开发,今天我们简单介绍下ansible基础 一.基础知识: 1. 简介 ansible基于python开发,集合了众多运维工具的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能.ansible是基于模块工作的 (1) host inventory: 指定操作的主机,是一个配置文件里面定义监控的主机        (2) 各种模块核心模块.comman

自动化运维工具之Ansible(一)

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

自动化运维工具puppet(二)

一.Puppet作域与变量 1.作用域 作域的作就是指定特定的代码与其他的代码进隔离. 变量与默认资源将接受这些限制, 资 源标题. 资源引将不接受这样的限制. 接受范围限制的有: 变量 默认资源 不接受范围限制的有: 资源标题 资源引 在任何给定作域内, 可访问在本域中定义的变量或资源默认值, 同时继承作域中的内容, 依 此类推. 因此, 任何局部作域都可访问顶级作域中的内容. 使的范围是从该节点作域内直到 全局作域, 如下图所. 从上图可以看到: 在全局作域内只能访问作域的变量及默认值. 节

自动化运维工具ansible的基本应用

在很多场景中我们都需要在多个主机上执行相同的命令或者是做相同的配置工作,此时,为了简化操作,我们可以借助一些自动化的工具来完成我们的需求,这种工具我们称之为自动化运维工具.ansible就是其中之一,下面我们就来用ansible来实现一些简单操作. 下面是ansible可以实现很多工具的功能,框架图如下所示:ansible不能实现操作系统的安装 ansible作者就是早期puppet和func的维护者之一,因为ansible充分吸取了puppet和func的优势,又力图避免他们的劣势. OS P

3.1 自动化运维工具ansible

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

自动化运维工具Ansible详细部署

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

自动化运维工具Ansible实战(一)安装部署

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