开始使用ansible
ansible是一个设计巧妙,功能强大,安全,使用简单的IT自动化运维工具。它可以实现统一配置管理,持续部署,流程编排等。
目前控制主机必须是linux,被控制主机可以是linux,类UNIX和windows。
实验环境
- 控制主机:windows 10 linux subsystem
- 被控制主机:centos7 虚拟机
ansible控制主机的依赖及安装方式
- Python 2.6及以上
- paramiko模块
- PyYAML
- Jinja2
- httplib2
- six
以上依赖只有在用源码安装方式时才需要使用python-pip工具来安装
$ sudo pip install paramiko PyYAML Jinja2 httplib2 six
如果是ubuntu,centos等可以使用包安装方式,比如在ubuntu下需要输入如下代码来安装
ubuntu
$ sudo apt-get install software-properties-common
$ sudo apt-add-repository ppa:ansible/ansible
$ sudo apt-get update
$ sudo apt-get install ansible
centos 7
$ sudo rpm –Uvh http:// mirrors.zju.edu.cn/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
$ sudo yum install ansible
ansible控制主机SSH配置
- 生成公钥和私钥,名字分别为ansible-control,ansible-control.pub
$ ssh-keygen -t rsa
- 使用ssh-copy-id将公钥拷贝到被控主机,192.168.137.167是一个centos7 虚拟机。
$ ssh-copy-id -i /root/ansible-control.pub root@192.168.137.167
ansible的常用命令
- ansible,在命令行中运行,比如使用模块shell在被控主机上执行命令
$ /bin/echo hello ansible!
写法如下
$ vim /etc/ansible/hosts
#增加一个组test,否则默认只能跟自己(localhost)通信
[test]
192.168.137.167
$ ansible 192.168.137.167 -m shell -a '/bin/echo hello ansible!'
上面只是向被控机192.168.137.167发送命令。在正式环境我们需要根据业务需将服务器分组。比如需要在10个服务器上安装tomcat等等。分组信息存储在清单(inventory)中。比如在当前目录中创建文件inventory.cfg并输入以下内容
$ vi inventory.cfg
[webserver]
192.168.137.167
192.168.137.168
192.168.137.169
引用inventory.cfg中的服务器组webserver
ansible -i inventory.cfg webserver -m shell -a '/bin/echo hello ansible!'
- 使用ansible-doc获取帮助信息
$ ansible-doc -h
- 使用ansible-playbook播放YAML脚本文件
$ ansible-playbook myplaybook.yml
在执行之前可以使用-C检查YAML脚本文件对被控主机的影响
$ ansible-playbook -C myplaybook.yml
- 使用ansible-galaxy -h
开始使用ansible的更多相关文章
- 如何利用ansible callback插件对执行结果进行解析
最近在写一个批量巡检工具,利用ansible将脚本推到各个机器上执行,然后将执行的结果以json格式返回来. 如下所示: # ansible node2 -m script -a /root/pyth ...
- 《Ansible权威指南》笔记(2)——Inventory配置
四.Inventory配置ansible通过Inventory来定义主机和组,使用时通过-i指定读取,默认/etc/ansible/hosts.可以存在多个Inventory,支持动态生成.1.定义主 ...
- useful Ansible commands
This article includes some useful Ansible commands. I will try to write blogs by English. You may wa ...
- 《Ansible权威指南》笔记(4)——Playbook
七.Playbook1.语法特性如下:(1)"---"首行顶格开始(2)#号注释(3)缩进统一,不同的缩进代表不同的级别,缩进要对齐,空格和tab不能混用(4)区别大小写,键值对k ...
- 《Ansible权威指南》笔记(3)——Ad-Hoc命令集,常用模块
五.Ad-Hoc命令集1.Ad-Hoc命令集通过/usr/bin/ansible命令实现:ansible <host-pattern> [options] -v,--verbose ...
- 《Ansible权威指南》笔记(1)——安装,ssh密钥登陆,命令
2016-12-23 读这本<Ansible权威指南>学习ansible,根据本书内容和网上的各种文档,以及经过自己测试,写出以下笔记.另,这本书内容很好,但印刷错误比较多,作者说第二版会 ...
- 自动化运维工具ansible部署以及使用
测试环境master 192.168.16.74webserver1 192.168.16.70webserver2 192.168.16.72安装ansiblerpm -Uvh http://ftp ...
- Ansible Ubuntu 安装部署
一.安装: $ sudo apt-get install ansible 二.配置: a.基本配置 $ cd /etc/ansible/ $ sudo cp hosts hosts_back 备份一个 ...
- Ansible 模块命令介绍
copy模块: 目的:把主控端/root目录下的a.sh文件拷贝到到指定节点上 命令:ansible 10.1.1.113 -m copy -a 'src=/root/a.sh dest=/tmp/' ...
- 用Vagrant和Ansible搭建持续交付平台
这是一个关于Vagrant的学习系列,包含如下文章: Vagrant入门 创建自己的Vagrant box 用Vagrant搭建Jenkins构建环境 用Vagrant和Ansible搭建持续交付平台 ...
随机推荐
- nginx内置全局变量
nginx内置全局变量 $args 请求中的参数; $binary_remote_addr 远程地址的二进制表示 $body_bytes_sent 已发送的消 ...
- 第十九篇 js高级知识---词法分析和AO 链
上面一篇文章说了js的作用域链,这一节算是对上面的延申,有一个典型的例子,首先看原来的一段代码: var name = "test"; function t() { var b = ...
- 怎么理解js的面向对象编程
面向对象的语言有一个标志,即拥有类的概念,抽象实例对象的公共属性与方法,基于类可以创建任意多个实例对象,一般具有封装.继承.多态的特性!但JS中对象与纯面向对象语言中的对象是不同的,ECMA标准定义J ...
- MySQL学习分享-->查询-->查询的分类
MySQL的查询可以分为交叉联接.内联接.外联接.自然联接.straight_join 下面对于查询的学习,会用到以下四张表: create table t_commodity_type( `id` ...
- Unity Shader 知识点总结(一)
在学习了一段时间的Unity Shader后,打算写一些知识总结,便于今后的查找.如有错误,希望大家指出更改. 本文参照的unity入门精要一书,做一个知识归纳,如有兴趣可以看看其开源的部分,是一本比 ...
- 警惕!MySQL成数据勒索新目标
据最新报道显示,继MongoDB和Elasticsearch之后,MySQL成为下个数据勒索目标,从2月12日凌晨开始,已有成百上千个开放在公网的MySQL数据库被劫持,删除了数据库中的存储数据,攻击 ...
- vue组件最佳实践
看了老外的一篇关于组件开发的建议(强烈建议阅读英文原版),感觉不错翻译一下加深理解. 这篇文章制定一个统一的规则来开发你的vue程序,以至于达到一下目的. 1.让开发者和开发团队更容易发现一些事情. ...
- UI设计学习路线图
文章转载自「开发者圆桌」一个关于开发者入门.进阶.踩坑的微信公众号 这里整理的UI设计学习路线图包含初中高三个部分,你可以通过百度云盘下载观看对应的视频 链接: http://pan.baidu.co ...
- [HDU2037]贪心入门
今年暑假不AC Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- HTML5学习笔记<二>:元素,属性,格式化
HTML元素 元素是指从开始标签到结束标签的所有代码. 开始(开放)标签 元素内容 结束(闭合)标签 <p> this is my web page </p> 没有内容的 HT ...