自动化运维 Ansible

特性

(1)、no agents:不需要在被管控主机上安装任何客户端;

(2)、no server:无服务器端,使用时直接运行命令即可;

(3)、modules in any languages:基于模块工作,可使用任意语言开发模块;

(4)、yaml,not code:使用yaml语言定制剧本playbook;

(5)、ssh by default:基于SSH工作;

(6)、strong multi-tier solution:可实现多级指挥。

1、运行 easy_install 安装

easy_install simplejson

easy_install pip

yum install gcc python-devel

easy_install ansible

pip list

2、Ansible配置

(1)、SSH免密钥登录设置

生成公钥/私钥

#ssh-keygen -t rsa -P ''

(2)、将生成的 密钥(/root/.ssh/id_rsa.pub) 发布到 被控主机 上

客户机上:

cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys

chmod 600 /root/.ssh/authorized_keys

完成以后记得删除 密钥 ! ( rm -rf /tmp/id_rsa.pub )

(3)、ansible配置 (配置文件目录为 /etc/ansible )

修改配置文件,指定 ssh 密钥:

mkdir -p /etc/ansible

#vim /etc/ansible/ansible.cfg

[defaults]

remote_port = 22                          #被控端 SSH 端口 默认为22

private_key_file = /root/.ssh/id_rsa      #密钥 需指定 id_rsa 这个密钥

hostfile      = /etc/ansible/hosts

配置被控主机(主机组定义)IP

#vim /etc/ansible/hosts

[yunwei]

172.24.0.14

172.24.0.15

(3)、简单测试

ansible yunwei -m command -a "uptime"

yunwei = 指定被控端的组

-m command = 运行命令

-a 'uptime' = 命令

3、常用模块使用

(1)、setup

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

#ansible yunwei -m setup

(2)、ping

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

#ansible yunwei -m ping

(3)、shell

# 先在本地创建一个SHELL脚本

vi /tmp/yunwei.sh

------------------------------------------------------------------------------------

#!/bin/sh

ifconfig |grep inet -m 1|grep -v '127.0.0.1' |cut -d: -f2|awk '{print $2}'

------------------------------------------------------------------------------------

保存 并授权

chmod +x yunwei.sh

# 将创建的脚本文件分发到远程  ( src = 本地脚本目录   dest = 被控机目录  owner = 权限 )

ansible yunwei -m copy -a "src=/tmp/yunwei.sh dest=/tmp/yunwei.sh owner=root group=root mode=0755"

# 远程执行

ansible yunwei -m shell -a "/tmp/yunwei.sh"

(4)、 yum           (安装ntpdate时间同步)

ansible yunwei -m yum -a "name=ntpdate state=installed"

同步时间

ansible yunwei -m command -a "ntpdate time.windows.com"

自动化运维 Ansible的更多相关文章

  1. 自动化运维Ansible安装篇

    Ansible自动化工具之--部署篇 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了 ...

  2. 自动化运维-ansible入门篇

    1.ansible配置 什么是Ansible IT自动化工具 依赖于现有的操作系统凭证来访问控制远程机器 简单易用.安全可靠 Ansible可以完成哪些任务 配置系统 开发软件 编排高级的IT任务 A ...

  3. 服务器/网络/虚拟化/云平台自动化运维-ansible

    ansible与netconf的对比 首先明确一个概念,netconf是协议,ansible是python编写的工具 netconf 使用YANG建模,XML进行数据填充,使用netconf协议进行传 ...

  4. Python自动化运维ansible从入门到精通

    1. 下载安装 在windows下安装ansible:

  5. 自动化运维—Ansible(上)

    一:为什么选择Ansible 相对于puppet和saltstack,ansible无需客户端,更轻量级 ansible甚至都不用启动服务,仅仅只是一个工具,可以很轻松的实现分布式扩展 更强的远程命令 ...

  6. 自动化运维--ansible(2)

    问题一:如何在多台服务器中配置Web项目上线的所有环境 解答: 1.使用ansible配置nginx服务 在安装前了解rpm与yum的区别  rpm是压缩包安装依赖包需要自己手动安装,yum安装解决依 ...

  7. 自动化运维--ansible(1)

    前戏 ansible 批量在远程主机上执行命令 openpyxl 操作excel表格 puppet ansible slatstack ansible epel源 第一步: 下载epel源 wget ...

  8. Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件

    一.Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,ce ...

  9. 自动化运维Ansible之常用模块

    目录 0.Ansible模块语法 1.Command模块 2.Shell模块 3.Scripts模块 4.Copy模块 5.File模块 6.Yum模块 7.Service模块 8.Cron模块 9. ...

随机推荐

  1. navicat连接oracle时发现 ORA-12737 set CHS16GBK

    oracle安装目录下找到目录:\product\11.2.0\dbhome_1\BIN, 将箭头标注的三个文件(截图中为navicat中的目录,已经测试成功,亲们可以参考)从目录中拷贝纸navica ...

  2. 怎样解决VS2013模块对于SAFESEH 映像是不安全的

    今天在使用VS2013编译一个控制台应用程序时出现了:error LNK2026 模块对于 SAFESEH 映像是不安全的,按照以下步骤轻松解决了. 打开该项目的“属性页”对话框,然后单击“链接器”- ...

  3. DZY Loves Partition

    问题描述 DZY喜欢拆分数字.他想知道能否把nn拆成恰好kk个不重复的正整数之和. 思考了一会儿之后他发现这个题太简单,于是他想要最大化这kk个正整数的乘积.你能帮帮他吗? 由于答案可能很大,请模10 ...

  4. Struts2值栈详解

    1. 关于值栈: 1). helloWorld 时, ${productName} 读取 productName 值, 实际上该属性并不在 request 等域对象中, 而是从值栈中获取的.  2). ...

  5. C# Socket的TCP通讯 异步 (2015-11-07 10:07:19)转载▼

    异步 相对于同步,异步中的连接,接收和发送数据的方法都不一样,都有一个回调函数,就是即使不能连接或者接收不到数据,程序还是会一直执行下去,如果连接上了或者接到数据,程序会回到这个回调函数的地方重新往下 ...

  6. ios 集合总结

    NSArray 用于对象有序集合(相当于是数组) 它有两个限制: 1. 它只能存储objective-c的对象,但不能存储C中的基本数据类型,如int , float, enum, struct等. ...

  7. 多校 Babelfish

    题目链接:http://acm.hust.edu.cn/vjudge/contest/124435#problem/A 密码:acm Sample Input dog ogday cat atcay ...

  8. JSP内置对象--session对象(getId(),getCreationTime(),getLastAccessedTime(),isNew(),invalidate(),setAttribute(),getAttribute())

    session对象是javax.servlet.http.HttpSession接口的实例,但是不像HttpServletRequest或HttpServletResponse一样,有父接口,他没有父 ...

  9. netty最快?

    http://www.techempower.com/blog/2013/04/05/frameworks-round-2/

  10. Jquery页面跳转

    <mce:script type="text/javascript"><!-- $(function(){ var pn = $("#gotopagen ...