开始使用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搭建持续交付平台 ...
随机推荐
- Thread类常用方法
Thread类构造方法: 1.Thread(): 2.Thread(String name): 3.Thread(Runable r): 4.Thread(Runable r, String name ...
- 【JS】JavaScript中的执行环境与作用域
JavaScript中的执行环境定义了变量或函数有权访问的数据(每个函数都有自己的执行环境),全局执行环境是最外围的执行环境,在浏览器中,全局执行环境就是window对象,所以所有的全局变量和函数都是 ...
- 跨专业学习编程的苦逼生活 QWQ嘤嘤嘤
一串串小小的代码,竟然可以做出辣么多的东西,彻底颠覆了我的世界观.人生观.价值观. 话不多说,一个例子证明一切>>>> <!DOCTYPE html> <ht ...
- C++primer拾遗(第一章:开始)
本系列将总结正在阅读的C++primer这本书中值得注意又容易忘记的知识点. 1. 当return语句包括一个值时,次返回值的类型必须与函数返回类型相同. 2. 操纵符 endl.写入该符号的效果是: ...
- Java反射机制深度剖析
版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! Java反射机制是Java语言中一种很重要的机制,可能在工作中用到的机会不多,但是在很多框架中都有用到这种机制.我们知道Java是一门静态 ...
- 前端总结·基础篇·JS(二)数组深拷贝、去重以及字符串反序和数组(Array)
目录 这是<前端总结·基础篇·JS>系列的第二篇,主要总结一下JS数组的使用.技巧以及常用方法. 一.数组使用 1.1 定义数组 1.2 使用数组 1.3 类型检测 二.常用技巧 2.1 ...
- 从Visual Studio看微软20年技术变迁
前言 这个世界从来都不缺变革,从工业革命到晶体管和集成电路,从生活电器到物联网,从简陋人机到精致体验,我们在享受技术带来的便捷的同时,也在为复杂设计而带来的挑战和生产力下降而痛并快乐着.而迫切期盼的, ...
- 因为本地没有配置 localhost 导致的 eclipse 的奇葩问题
因为电脑没有配置 127.0.0.1 localhost,已经碰到两次奇葩问题了. 问题一: 我的博文http://www.cnblogs.com/sonofelice/p/5143746.html中 ...
- TIME_WAIT 另一种解决方式 SO_LINGER
被TIME_WAIT问题烦得不行,又发现了另一种解决方式,SO_LINGER. 对SO_LINGER解释最通用的自然是<UNP>,现摘录如下 SO_LINGE ...
- iOS开发之数据存储之NSData
1.概述 使用archiveRootObject:toFile:方法可以将一个对象直接写入到一个文件中,但有时候可能想将多个对象写入到同一个文件中,那么就要使用NSData来进行归档对象. NSDat ...