首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将Testinfra与Ansible结合使用以验证服务器状态

通过设计,Ansible表示计算机的期望状态,以确保将Ansible剧本或角色的内容部署到目标计算机。 但是,如果需要确保所有基础架构更改都在Ansible中怎么办? 还是随时验证服务器的状态?...在Testinfra中编写测试很容易。...该对象可以访问不同的帮助程序模块。 例如,第一个测试使用文件模块来验证主机上文件的内容,第二个测试用例使用服务模块来检查系统服务的状态。...使用Ansible模块 Testinfra还为Ansible提供了一个不错的API,可在测试中使用。 Ansible模块可以访问在测试中运行Ansible播放的内容,并易于检查播放结果。...Testinfra提供与流行的监控解决方案Nagios的集成。 默认情况下,Nagios使用NRPE插件在远程主机上执行检查,但是使用Testinfra允许直接从Nagios主服务器运行测试。

2K11

自动化运维工具-Ansible

ansible是基于 paramiko 开发的自动化运维工具,它基于模块化工作,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。...格式文件,多个任务定义在一个文件中,定义主机需要调用哪些模块来完成的功能; Core Modules:核心模块,主要操作是通过调用核心模块来完成管理任务; Custom Modules:自定义模块,完成核心模块无法完成的功能...接下来的操作才可以正常进行。 2)command 模块 这个模块可以直接在远程主机上执行命令,并将结果返回本主机。...示例: ansible web -m command -a "ls /root/test" 3)shell 模块 shell模块可以在远程主机上调用shell解释器运行命令,支持shell的各种功能,例如管道等...示例: ansible web -m shell -a "cat /etc/passwd" 只要是我们的shell命令,都可以通过这个模块在远程主机上运行。

1.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【DevOps】Ansible v.s. Salt (SaltStack) v.s. StackStorm

    playbook 是一系列 Ansible 模块,您希望在使用 YAML 编写的远程主机上执行这些模块。 当它连接到远程主机时,这有点像精心策划的军事演习,上车、干活然后下车。...架构 Ansible 的架构很简单,你有在你的机器上运行的应用程序,你有在远程主机上运行的任务,通过 SSH 进行通信并通过 SCP/SFTP 传输文件。...与 StackStorm 的传感器和触发系统类似,Salt 的信标将事件发送到消息总线中,然后可以在反应器中(在主节点上)进行处理。...您可以使用 PyTest 对模块进行单元测试,而无需在主机上或运行主机,以进行集成测试你应该在 Linux 上,尽管通过一些黑客攻击你可以在 OSX 上运行它们(Windows 是不可能的,就像 StackStorm...Salt 有信标,可以在代理和中央主机上运行的服务,如果你想检测本地机器上的事件,这是一个独特的功能。Ansible 的开源版本不允许(也不会尝试)允许您响应事件。

    1.2K20

    Python多环境扩展管理-Virtua

    如果你的本地 pip 库已经装了别的模块了,那么新的虚拟环境也会包含这些模块。如果不想这样,就要加上一些参数选项。...创建虚拟环境 创建工作目录: $ mkdir /opt/ansible 在工作目录下,创建一个独立的虚拟环境,命名为venv: $ cd /opt/ansible $ virtualenv --no-site-packages...就可以创建一个独立的Python运行环境,我们还加上了参数--no-site-packages,这样,已经安装到系统Python环境中的所有第三方包都不会复制过来,这样,我们就得到了一个不带任何第三方包的...然后退出虚拟环境,再次尝试使用之前的模块,就提示找不到命令了。...其实只是系统的环境变量变了,安装的模块还在,但是不在环境变量里,所以就找不到了,指定路径的话还是有的 总结 virtualenv为应用提供了隔离的Python运行环境,解决了不同应用间多版本的冲突问题。

    82620

    一文详解 Ansible 自动化运维!

    常用的参数如下: chdir:在远程主机上运行命令前要提前进入的目录; creates:在命令运行时创建一个文件,如果文件已存在,则不会执行创建任务; removes:在命令运行时移除一个文件,如果文件不存在...如果源是目录,则目标也要是目录; mode:指出复制时,目标文件的权限,可选; owner:指出复制时,目标文件的属主,可选; group:指出复制时目标文件的属组,可选; content:指出复制到目标主机上的内容...--/将本机的hosts文件复制到web组中的所有主机上存放在家目录下的a1.hosts目录, 权限是777,属主是root,属组是root--> 4)hostname模块 hostname模块用于管理远程主机上的主机名...playbook的核心元素包含: hosts:任务的目标主机,多个主机用冒号分隔,一般调用/etc/ansible/hosts中的分组信息; remote_user:远程主机上,运行此任务的默认身份为root...例如,当通过ansible的模块对目标主机的配置文件进行修改之后,如果任务执行成功,可以触发一个触发器,在触发器中定义目标主机的服务重启操作,以使配置文件生效。

    3.1K30

    开源运维自动化工具 Ansible 详解

    常用的参数如下: chdir:在远程主机上运行命令前要提前进入的目录; creates:在命令运行时创建一个文件,如果文件已存在,则不会执行创建任务; removes:在命令运行时移除一个文件,如果文件不存在...如果源是目录,则目标也要是目录; mode:指出复制时,目标文件的权限,可选; owner:指出复制时,目标文件的属主,可选; group:指出复制时目标文件的属组,可选; content:指出复制到目标主机上的内容...--/将本机的hosts文件复制到web组中的所有主机上存放在家目录下的a1.hosts目录, 权限是777,属主是root,属组是root--> 4)hostname模块 hostname模块用于管理远程主机上的主机名...; remote_user:远程主机上,运行此任务的默认身份为root; tasks:任务,即定义的具体任务,由模块定义的操作列表; handlers:触发器,类似tasks,只是在特定的条件下才会触发的任务...例如,当通过ansible的模块对目标主机的配置文件进行修改之后,如果任务执行成功,可以触发一个触发器,在触发器中定义目标主机的服务重启操作,以使配置文件生效。

    4K40

    自动化工具——ansible中文指南

    这个工具的目标有这么几项:让我们自动化部署APP;自动化管理配置项;自动化的持续交付;自动化的(AWS)云服务管理。 所有的这几个目标本质上来说都是在一个台或者几台服务器上,执行一系列的命令而已。...因此fabric和ansible还有一个共同点就是不需要在远程主机上安装client/agents,因为它们是基于ssh来和远程主机通讯的。 2....Ad-Hoc ad hoc——临时的,在ansible中是指需要快速执行,并且不需要保存的命令。说白了就是执行简单的命令——一条命令。对于复杂的命令后面会说playbook。...在ansible中还有一个Module(模块)的概念,这个模块可以理解为一个库,所有的命令都需要通过模块来执行,比如上面的那个命令: ansible -i ~/hosts all -a 'who' ,其实是调用了默认的...——在local服务器上,从git上clone下来我的blog源码,然后创建虚拟环境,创建数据库,最后运行: # deploy-blog-simple.yml --- - hosts: local #

    2K20

    Ansible 详细用法说明(一)

    幂等性:一种操作重复多次结果相同 简评: (1)、轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可; (2)、批量任务执行可以写成脚本,而且不用分发到远程就可以执行; (3)、...可以通过file来加载,可以通过CMDB加载 Playbooks:YAML格式文件,多个任务定义在一个文件中,使用时可以统一调用,“剧本”用来定义那些主机需要调用那些模块来完成的功能....Core Modules:Ansible执行任何管理任务都不是由Ansible自己完成,而是由核心模块完成;Ansible管理主机之前,先调用core Modules中的模块,然后指明管理Host Lnventory...seconds (default=10) -t TREE, --tree=TREE log output to this directory 将日志内容保存在该输出目录,结果保存在一个文件中在每台主机上...,先切换到该目录 removes:一个文件名,当该文件不存在,则该选项不执行 executable:切换shell来执行指令,该执行路径必须是一个绝对路径 shell:在远程主机上调用shell解释器运行命令

    1.3K50

    Ansible 自动化运维笔记(总结)

    端口与别名 ssh默认的端口是22 (此时的Ansible主机配置文件可以省略),但是如果某些主机的ssh运行在自定义的端口上,Ansible使用Paramiko进行ssh连接时不会使用你ssh配置文件中列出的端口...Shell shell 模块可以帮助我们在远程主机上执行命令,它与 command 模块不同之处是 shell 模块在远程主机中执行命令时,会运行远程主机上的 /bin/sh 程序处理,也就是说它不是直接执行命令...mode=777 recurse=yes" Copy 文件的复制也是最常用的功能之一,在Ansible中我们可以使用copy模块本模块的作用就是拷贝文件它与fetch模块类似,不过fetch模块是从远程主机中拉取文件到...ansible 管理主机,而 copy 模块是将 ansible 管理主机上的文件拷贝到远程主机中,文件的变化是通过MD5值来判断的....,设置属主,远程主机上必须有对应的用户 group 在拷贝到远程主机以后,设置属组,远程主机上必须有对应的用户 mode 在拷贝到远程主机以后,设置文件的权限信息 others 所有的file模块里的选项都可以在这里使用

    2.2K20

    Ansible 常用

    command模块:对被管控主机做一些操作命令,并将各主机上的结果输出回ansible主机上。...文件到被管控主机的/tmp/fstab,属主属组为ly,权限为600 content=123 :将‘123’复制到dest=字段指定的文件中,会覆盖目标文件的所有内容,基本就是远程输出重定向的意思...=5 enabled=true' 在级别5下,自动启动httpd服务 script 这个模块非常有用,可以把本地的脚本在各被管控主机上跑一遍,我可以现在本地主机的/root目录下建立一个脚本123....主机变量:定义在host inventory中(就是/etc/ansible/hosts) 中的主机之后的变量, 组变量:定义在host inventory中(就是/etc/ansible/hosts)...中的组后面的变量 启动参数:也是定义在定义在host inventory中(就是/etc/ansible/hosts) 中的主机之后的,但是并不是自定义的变量,更像一些参数。

    1.6K20

    玩转企业常见应用与服务系列(十四):自动化运维工具 Ansible 基础入门

    -i #指定了主机文件,如果不指定,则默认为/etc/ansible/hosts文件,在主机文件中,定义了Ansible要控制的主机IP或域名,及其用户、密码。...Sunda y-Saturday,, ) job# 指明运行的命令 name #定时任务描述 reboot #任务在重启时运行,不建议使用,建议使用special_time special_time...copy #默认为yes,拷贝的文件从ansible主机复制到远程主机,no在远程主机上寻找src源文件解压 src #tar源路径,可以是ansible主机上的路径,也可以是远程主机上的路径,如果是远程主机上的路径...,则需设置copy=no dest #远程主机上的目标绝对路径 mode #设置解压缩后的文件权限 exec #列出需要排除的目录和文件 remote_src #设置remote_src=yes为解包目标上已经存在的档案...owner #解压后文件或目录的属主 group #解压后的目录或文件的属组 #解压ansible管理机上的压缩文件到远程主机并设置权限 [root@localhost ~]$ ansible

    78811

    Jenkins+Ansible+GitLab持续交付平台搭建-第3篇

    Ansible安装配置管理 Ansible优势和应用场景 Ansible:开源部署工具 开发语言:Python 特点:ssh协议通讯,全平台,无需编译,模块化部署管理 作用:推送playbook进行远程节点快速部署...优势: 轻量级无客户端(Agentless) 开源免费,学习成本低,快速上手 使用playbook作用核心配置架构,统一脚本格式,批量化部署 完善的模块化扩展,支持目前主流的开发场景 强大的稳定性和兼容性...# cd .py3-a2.5-env/ansible # git checkout stable-2.5 7)在py3.6虚拟环境下加载ansible2.5 # source /home/deploy...到此ansible2.5版本已经成功的在py3.6虚拟环境下完成安装; CentOS6.7下Ansible部署:http://www.showerlee.com/archives/1649 Ansible...authorized_key是目标主机.ssh的秘钥 ----

    80030

    Ansible常用模块实例

    ansible主要文件 ? (/etc/ansible/ansible.cfg) #ansible主配置文件。 (/etc/ansible/hosts) #主机清单,保存管理的主机信息。...配置SSH免秘钥访问 为了避免ansible每次下发指令都要输入目标主机密码,所以这里使用(ssh-keygen)在控制主机创建一对秘钥,使用(ssh-copy-id)来下发生成的公钥。..."status": "disabled" } (ping)模块 #测试目标主机的运行状态 示例: [root@master ~]# ansible cluster_host -m ping...参数如下: force 在两种情况下强制创建软链接 1.源文件不存在但之后会建立的情况下; 2.目标软连接已经存在,需要取消之前的软链接,然后创建洗的软连接,有两个选项:yes|no; group 定义文件...)模块 #在远程主机上执行命令 参数如下: chdiiv 在执行命令之前,通过cd命令进入指定目录中。

    1.1K30

    Jenkins+Ansible+GitLab持续交付平台搭建-第3篇

    Ansible安装配置管理 Ansible优势和应用场景 Ansible:开源部署工具 开发语言:Python 特点:ssh协议通讯,全平台,无需编译,模块化部署管理 作用:推送playbook进行远程节点快速部署...优势: 轻量级无客户端(Agentless) 开源免费,学习成本低,快速上手 使用playbook作用核心配置架构,统一脚本格式,批量化部署 完善的模块化扩展,支持目前主流的开发场景 强大的稳定性和兼容性...# cd .py3-a2.5-env/ansible # git checkout stable-2.5 7)在py3.6虚拟环境下加载ansible2.5 # source /home/deploy.../.py3-a2.5-env/ansible/hacking/env-setup -q 8)验证ansible2.5 # ansible --version 到此ansible2.5版本已经成功的在...authorized_key是目标主机.ssh的秘钥

    46430

    ansible基础应用

    (1)command模块:远程主机上运行命令 例如:ansible webservers -m command -a "ls /var" ansible webservers -a "useradd...ansible all -m cron -a "state=absent name=Synctime" 就可以删除 (5)fetch模块:拉取文件的(从远程主机上拉取文件到本地) ansible-doc...ansible的任务配置文件被称为playbook,就是剧本,每个剧本里面包含一系列的任务,每个任务在ansible中又被称为“戏剧”(play)。...Tasks中的任务都是有状态的,changed或者ok。 在Ansible中,只在task的执行状态为changed的时候,才会执行该task调用的handler。...(4)指定哪一出独唱用tags 我只想运行playbook的某一步,其他的不运行 (5)variables变量 1、facts:可以直接调用 2、ansible-playbook命令的命令行中可以自定义变量

    1.3K71

    ansible常用模块简单介绍

    /facts目录下,每台主机的信息输入到主机名文件中 (/etc/ansible/hosts里的主机名) 三、file模块 file模块主要用于远程主机上的文件操作,file模块包含如下选项: force...:定义文件/目录的权限 owner:定义文件/目录的属主 path:必选项,定义文件/目录的路径 recurse:递归的设置文件的属性,只对目录有效 src:要被链接的源文件的路径,只应用于state=...,如果设置为yes,则强制覆盖,如果为no,则只有当目标主机的目标位置不存在该文件时,才复制。...指令来查看服务的状态时,没有响应,就会通过ps指令在进程中根据该模式进行查找,如果匹配到,则认为该服务依然在运行 runlevel:运行级别 sleep:如果执行了restarted,在则stop和start...set_remote_user:主要用于/etc/ansible/hosts中定义或默认使用的用户-与rsync使用的用户不同的情况 mode: push或pull 模块,push模的话,一般用于从本机向远程主机上传文件

    60501

    马哥金牌分享 | 十五分钟实现Ansible常用模块入门

    datanodes -mcommand -a uptime 中, datanodes即所谓的host-pattern 定义在/etc/ansible/hosts文件中,格式如下: (主机列表可以为域名,...也可为IP地址) data[4:6]为data4,data5,data6的简写形式 只有在/etc/ansible/hosts中定义过的主机,才能被ansible管理 主机变量 可以在inventory...playbook中使用 组变量 组变量是指赋予给指定组内所有主机上的在playboo中可用的变量。...dest:远程主机的上文件存放路径,必做使用绝对路径 content: 直接在命令中指定文件内容,使用该内容在远程主机上生成文件 backup: 是否备份目标文件,默认为no owner: 指定文件属主...删除某个job时,使用state参数: state=absent shell模块:在远程主机上执行命令 类似command模块 但是稍有不同,功能更为强大 比如,使用command中要使用管道符“|”

    1.6K50
    领券