在Debian 8 上安装自动化工具Ansible
如果你是新手,就不要犹豫了,ansible是你最好的选择,本人菜鸟一个。废话少说,开始安装!
实验环境:
192.168.3.190
192.168.3.191
192.168.3.192
192.168.3.193
1)配置ssh免密码登陆
root@debian:~# ssh localhost
root@debian:~# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
root@debian:~# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
root@debian:~# scp -r /root/.ssh 其他机器:/root
root@debian:~# chmod 600 /root/.ssh/authorized_keys
接下来:
2)root@debian:~# apt-get install ansible
root@debian:~# ansible --version
ansible 1.7.2
3)Ansible配置
a) 主机定义:
root@debian:~# vim /etc/ansible/hosts
[local]
192.168.3.190 可以是IP或主机名;
[other]
192.168.3.191
192.168.3.192
192.168.3.193
在这里,我定义了两个组,简单说一下,一个主机可以有多个组,建议组名好记一些,因为测试要用。当然你也可以看文件里面的注释。
b)测试
语法ansible <host-pattern> [options]
ansible <pattern_goes_here> -m<module_name> -a <arguments>
root@debian:~# ansible other -m ping
192.168.3.192 | success >> {
"changed": false,
"ping": "pong"
}
192.168.3.191 | success >> {
"changed": false,
"ping": "pong"
使用ping测试,以上显示成功,可以继续其他操作(如果你不懂ping,神仙也救不了你啦)
常见命令选项:
-m 模块名
-a 参数
-s是此用户sudo无需输入密码
注意:命令有挺多的,只列举了几个常用的。
我用ansible的需要是,老大有的时候让我去改配置文件或者上传点东西太浪费时间啦,我不能一台台机器去ssh吧,现在不流行devops嘛!如果你不懂什么意思,还是去多看看书吧,虽然我也不懂!
3)安装服务(可以用playbook):
root@debian:~# ansible local -a 'apt-get -y install softname'
root@debian:~# ansible all -m command -a "apt-get -y install softname"
命令执行的结果是一样,目前看,单引号和双引号没什么区别,但没有是不行的。
4)文件管理模块-file
主要用来设置文件、链接、目录的属性,或者移除文件、链接、目录,很多其他的模块也会包含这种作用(简单演示怎么用,上手快,其他的细节还需自己去领悟)
##远程拷贝文件----COPY
ansible other -m copy -a "src=/etc/ansible/ansible.cfg dest=/tmp/ owner=root group=root mode=0644"
##删除远程的文件
ansible other -m file -a "dest=/tmp/ansible.cfg state=absent mode=0644" 删除远程的目录
说明:(1)State:如果是目录不存在,那么会创建目录;如果是文件不存在,那么不会创建文件;如果是link,那么软链接会被创建或者修改;如果是absent,那么目录下的所有文件都会被删除,如果是touch,会创建不存在的目录和文件
(2)copy:
backup:在覆盖之前,将源文件备份,备份文件包含时间信息。有两个选项:yes|no
content:用于替代“src”,可以直接设定指定文件的值
dest:必选项。要将源文件复制到的远程主机的绝对路径,如果源文件是一个目录,那么该路径也必须是个目录
directory_mode:递归设定目录的权限,默认为系统默认权限
force:如果目标主机包含该文件,但内容不同,如果设置为yes,则强制覆盖,如果为no,则只有当目标主机的目标位置不存在该文件时,才复制。默认为yes
others:所有的file模块里的选项都可以在这里使用
src:被复制到远程主机的本地文件,可以是绝对路径,也可以是相对路径。如果路径是一个目录,它将递归复制。在这种情况下,如果路径使用“/”来结尾,则只复制目录里的内容,如果没有使用“/”来结尾,则包含目录在内的整个内容全部复制,类似于rsync。
5)用playbook安装服务:
root@debian:~# cat apache2.yml
---
- hosts: other
tasks:
- name: Install apache2 web server
apt: pkg=apache2 state=installed update_cache=true
接下来执行playbook
root@debian:~# ansible-playbook apache2.yml
注意事项:YAML 还有一个小的怪癖. ansible的 YAML 文件一般开始行都应该是 --- 这是 YAML 格式的一部分, 表明一个文件的开始.(本人试验过,可以去掉不写的!)
列表中的所有成员都开始于相同的缩进级别, 并且使用一个 "- " 作为开头(一个横杠和一个空格):
一个字典是由一个简单的 键: 值 的形式组成(这个冒号后面必须是一个空格):
总结:第一天学习ansible,把学习的过程记录下来!稍后会继续学习其他模块。
有没有觉得自动化很爽!!!
在Debian 8 上安装自动化工具Ansible的更多相关文章
- 在 CentOS 7 中安装并使用自动化工具 Ansible
Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具.它用Python写成,类似于Chef和Puppet,但是有一个不同和优点是我们不需要在节点中安装任何客户端.它使用SSH来和节点进 ...
- Linux上安装编译工具链
在Linux上安装编译工具链,安装它会依赖dpkg-dev,g++,libc6-dev,make等,所以安装之后这些依赖的工具也都会被安装.ubuntu软件库中这么描述 Informational l ...
- 如何在Debian 9上安装和使用Docker
介绍 Docker是一个简化容器中应用程序进程管理过程的应用程序.容器允许您在资源隔离的进程中运行应用程序.它们与虚拟机类似,但容器更便携,更加资源友好,并且更依赖于主机操作系统. 在本教程中,您将在 ...
- rancher下的kubernetes之三:在linux上安装kubectl工具
本章是<rancher下的kubernetes>系列之三,前面两章我们完成了racher下搭建kubernetes环境的实战,本章我们来安装kubectl工具: 系列文章地址 <ra ...
- vSphere Client上安装虚拟机工具VMware Tools
vSphere Client上安装虚拟机工具VMware Tools 1.安装虚拟机 具体安装步骤就不详述了,安装虚拟机之后右击虚拟机名->客户机->安装/升级VMware Tools,这 ...
- 在CentOS7.6上安装自动化运维工具Ansible以及playbook案例实操
前言 Ansible是一款优秀的自动化IT运维工具,具有远程安装.远程部署应用.远程管理能力,支持Windows.Linux.Unix.macOS和大型机等多种操作系统. 下面就以CentOS 7.6 ...
- 自动化服务安装部署工具-Ansible
自动化运维工具Ansible详细部署 ================================================================================= ...
- 自动化工具-ansible服务部署与使用
1.前言 1.1ansible软件介绍 python 语言是运维人员必须会的语言 ansible 是一个基于python 开发的自动化运维工具 其功能实现基于ssh远程连接服务 ansible 可以实 ...
- 运维自动化工具ansible
企业级自动化运维工具应用实战ansible 公司计划在年底做一次大型市场促销活动,全面冲刺下交易额,为明年的上市做准备.公司要求各业务组对年底大促做准备,运维部要求所有业务容量进行三倍的扩容,并搭建出 ...
随机推荐
- (1) 类构造块,this(),static,单例模式串讲
类构造块 在类只用一对大括号包含的内容,构造所有的对象时都会执行的内容,如果某个类有好几个够赞函数,公共部分抽取出来,放到构造块中. clas Boy { ... { syso("哭...& ...
- ng2响应式表单-翻译与概括官网REACTIVE FORMS页面
本文将半翻译半总结的讲讲ng2官网的另一个未翻译高级教程页面. 原文地址. 文章目的是使用ng2提供的响应式表单技术快速搭出功能完善丰富的界面表单组件. 响应式表单是一项响应式风格的ng2技术,本文将 ...
- 日期格式化,moment.js
官方文档:http://momentjs.com/; 使用方法:moment(data).format("YYYY-MM-DD");//data为日期的字符串形式 moment() ...
- Nginx + ngx_lua安装测试【CentOs下】
最近打算搞搞nginx,扒着各位先驱的文章自己进行测试下,中间过程也是错误不断,记录一下,以备使用. nginx的安装挺简单的,主要还是研究下一些第三方的模块,首先想试下初始化 ...
- pygame加载中文名mp3文件出现error
好一阵子没有写东西了,最近几天在做一个基于Python pygame的音乐播放器,本来想做完了,再来发篇文章的,可越做越深,框架大致出来了,考虑周期比较长,也可能是我个人问题,做得比较慢,最近.下面来 ...
- XJOI1571爱心蜗牛【树形动规】
爱心蜗牛 猫猫把嘴伸进池子里,正准备"吸"鱼吃,却听到门铃响了.猫猫擦了擦脸上的水,打开门一看,那人正是她的好朋友--川川.川川手里拿着一辆玩具汽车,对猫猫说:"这是我的 ...
- poptest老李谈Socket
poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-845052 ...
- 对象的创建过程(chapter5.7.3)
总结一下对象的创建过程,假设有一个名为Dog的类: 1. 即使没有显示地使用static关键字,构造器实际上也是静态的方法,因此,当首次创建类型为Dog的对象时(构造器可以看成静态方法),或者Dog类 ...
- Activity的Task详解
1.Task Task是一个具有栈结构(后进先出)的容器,可以放置多个Activity实例.启动一个应用,系统就会为之创建一个Task,来放置根Activity.默认情况下,一个Activity启动另 ...
- 从Chrome源码看JS Array的实现
.aligncenter { clear: both; display: block; margin-left: auto; margin-right: auto } .crayon-line spa ...