ansible 测试

ansible工具:简单的自动化IT工具,具体的就是“批量的在远程服务器上执行命令”

ansible的优点:

1 充分利用现有设施。使用 Ansible 无需安装服务端和客户端,只要 SSH 即可。这意 味着,任何一台装有 Ansible 的机器都可以成为强大的管理端。

2 使用简单,快速上手相当容易。

3 采用人类易读的格式。Ansible 的主机定义文件使用 INI 格式,支持分组,能够指定 模式;此外也能动态生成,这对管理云主机应当很有用。

4 能够使用你熟悉的语言来编写模块。虽然 Ansible 是使用 Python 开发的,但它不会 将你限制到某种具体的编程语言,Bash、Python、Perl、Ruby 等等都可以。

安装 Ansible

Ansible 能够安装到 Linux、BSD、Mac OS X 等平台,Python 版本最低要求为 2.6。 常用 Linux 发行一般可以通过其自带的包管理器安装 Ansible

yum install ansible     # RHEL/CentOS/Fedora,需要配置 EPEL
apt-get install ansible # Debian/Ubuntu
emerge -avt ansible     # Gentoo/Funtoo
准备 Inventory

Inventory 文件用来定义你要管理的主机。其默认位置在 /etc/ansible/hosts ,如果不保存在默认位置,也可通过 -i 选项指定。

被管理的机器可以通过其 IP 或域名指定。未分组的机器需保留在 hosts 的顶部,分组 可以使用 [] 指定,如:

[web]
linuxtoy.org

同时,分组也能嵌套:

[vps:children]
web
db

此外,也可以通过数字和字母模式来指定一系列连续主机,如:

[1:3].linuxtoy.org # 等价于 1.linuxtoy.org、2.linuxtoy.org、3.linuxtoy.org
[a:c].linuxtoy.org # 等价于 a.linuxtoy.org、b.linuxtoy.org、c.linuxtoy.org

执行命令来看看 Ansible 是否能正常工作:

ansible -i hosts all -m ping -u www

该命令选项的作用分别为:

  • -i:指定 inventory 文件,使用当前目录下的 hosts
  • all:针对 hosts 定义的所有主机执行,这里也可以指定组名或模式
  • -m:指定所用的模块,我们使用 Ansible 内置的 ping 模块来检查能否正常管理远端机器
  • -u:指定远端机器的用户

如果返回如下结果:

linuxtoy.org | success >> {
    "changed": false,
    "ping": "pong"
}

则说明一切正常。

下面我们再看看远端机器的 uptime:

ansible vps -a ‘uptime‘

这将输出:

linuxtoy.org | success | rc=0 >>
11:23:16 up 177 days, 21:19,  0 users,  load average: 0.55, 0.45, 0.39

此处我们省略了 -m,Ansible 默认使用 command 模块;-a 指定模块的参数,即执行 uptime 命令。

使用 Ad-Hoc 管理简单任务

执行 Ad-Hoc 就跟我们在 Linux 下执行单行命令差不多,用来快速完成简单的任务十分 方便。比如:如果被管理端的 Python 为 2.4,那么需要 python-simplejson 这个包。我们可以通过以下命令在所有 CentOS 主机上安装它:

ansible all -m raw -a ‘yum -y install python-simplejson

使用 Playbook 管理复杂任务

对于需反复执行的、较为复杂的任务,我们可以通过定义 Playbook 来搞定。Playbook 是 Ansible 真正强大的地方,它允许使用变量、条件、循环、以及模板,也能通过角色 及包含指令来重用既有内容。我们来看一个简单的例子,该例子在远端机器上创建一个 新的用户:

---
- name: create user
  hosts: vps
  user: root
  gather_facts: false

  vars:
  - user: "toy"

  tasks:
  - name: create {{ user }} on vps
    user: name="{{ user }}"

首先,我们给 Playbook 指定了一个名称;接着,通过 hosts 让该 Playbook 仅作用于 vps 组;user 指定以 root 帐号执行,Ansible 也支持普通用户以 sudo 方式执行;gather_facts 的作用是搜集远端机器的相关信息,稍后可通过变量形式在 Playbook 中使用;vars 定义变量,也可单独放在文件中;tasks 指定要执行的任务。

要执行 Playbook,可以敲入:

ansible-playbook user.yml

执行结果为:

PLAY [create user] ************************************************************

TASK: [create toy on vps] *****************************************************
changed: [linuxtoy.org]

PLAY RECAP ********************************************************************
linuxtoy.org               : ok=1    changed=1    unreachable=0    failed=0

更多的内容会持续的填补。

时间: 2024-09-30 10:44:49

ansible 测试的相关文章

使用ansible搭建自动发布系统

[email protected] 2015-2-3 23:23:08 1. 需求描述 1.1 后台开发者的体力劳动 互联网公司的后台工程师每天大部分时间都是对着黑黑的屏幕敲命令,敲代码.编译.部署到测试环境.测试.部署到生产环境.灰度升级.临时停掉服务.临时重启服务.发现问题回滚到上一个版本等等 如果你是在做一件服务全球用户的事情,如果你的IDC就有四五十个.机器几百台,还搞的定麽? 你可能想到写脚本来解决这个问题,不幸的是写脚本会把你拉向另一个深渊.具体原因以后有时间再说 后台开发者必须用这

Windows下使用Ansible应用

环境需求: * Controller 一定要是 Linux * Windows  需要: 1.Framework 4.5 2.PowerShell 3.0 原料: Ansible Master (CentOS) Anisble Slave (Windows SP1) 步骤: [Linux] yum -y install python-kerberos.x86_64 python2-winrm.noarch [Windows] 下载 Framework 4.5 http://download.mi

用Ansible配置思科网络设备

ansible:Ansible is Simple IT Automation"--简单的自动化IT工具.这个工具的目标有这么几项:让我们自动化部署APP:自动化管理配置项:自动化的持续交付.Ansible一般通过ssh协议实现linux服务器的管理,但从2.1版本开始,ansible core modules加入了对cisco ios设备的支持,对应的模块为ios_command, ios_config, ios_template.以下拓扑图是用于ansible测试的的 其中右上角的Linux

免密码交互方式+ansible批量管理服务介绍

介绍了ssh服务 1) 远程连接加密传输数据协议,实现远程连接登录,默认端口222)ssh远程连接原理依赖于锁头(公钥)和钥匙(私钥),实现远程加密连接3)ssh基于秘钥远程登录原理a 管理服务器创建秘钥対,将公钥传输发送给给管理端b 管理端请求与被管理端建立连接c 被管理向管理端发送公钥质询d 管理端处理质询信息,实现管理与被管理端免密码交互4)基于ssh协议相关命令ssh scp sftp netstat -lntup |egrep sshd 查看ssh端口 1.1 部署ssh+key (免

Ansible安装及常用模块

配置文件:/etc/ansible/ansible.cfg 主机列表:/etc/ansible/hosts  安装anslibe  wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo yum -y install ansible 配置文件先备份 修改配置文件hosts添加主机组 (分组) 如果要远程连接需要配置用户名和密码或密钥(两种方式都可以) 用户密码: [webtest] 192.168

OMserver自动化运维平台搭建及测试

本文基于<Python自动化运维  技术与最佳实践>第十三章内容"从零开始打造B/S自动化运维平台". 参考链接为作者刘天斯个人博客: https://blog.liuts.com/post/245/ https://blog.liuts.com/post/246/ https://github.com/yorkoliu/pyauto 平台简介:OMServer是本平台的名称.OMServer实现了一个集中式的Linux集群管理基础平台,提供了模块扩展的支持,可以随意添加集

Ansible基础介绍

Ansible是一种基于python编写的自动化批量部署工具.主要应用于批量部署应用和结合Git.Jenkins进行自动化配置管理. Ansible结构: Ansible(核心程序) 就是ansible的心脏大脑,进行各部分的协调调用. Host Invertory(主机群组) 定义了被管理的Client,例如Client的IP.域名或ssh端口等信息. Playbooks(剧本) 用于给Client执行的任务配置文件 Modules(模块) ansible的内置功能模块,例如yum模块,she

Ansible uri模块和双向TLS

似乎有一个问题让uri模块很好地处理出入境TLS. 我已经设法让客户端验证或服务器验证工作,但不同时,这似乎很奇怪. 旋度相同的安装工作没有问题,如下显示. 如果你有一些经验与uri模块和TLS,也许你可以帮助. 设置 我有设置Apache httpd接受TLS连接主机,自签署的根证书,一个中间CA证书,一个服务器证书签发给127.0.0.1,客户机证书.我可以用旋度测试这个设置,和,一切工作正常,见下文. 文件host.127.0.0.1.cert. pem包含三个证书:根,中间,和服务器证书

ansible使用1

常用软件安装及使用目录   ansible软件2 ### ansible软件部署安装需求#### 01. 需要有epel源 系统yum源(base epel--pip gem) sshpass---epel 02. ssh+key免密码环境必须部署完成 ### ansible常用模块总结 01. ping---ansible测试模块 ansible 172.16.1.41 -m ping 172.16.1.41 | SUCCESS => { "changed": false, &