如果你是新手,就不要犹豫了,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的更多相关文章

  1. 在 CentOS 7 中安装并使用自动化工具 Ansible

    Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具.它用Python写成,类似于Chef和Puppet,但是有一个不同和优点是我们不需要在节点中安装任何客户端.它使用SSH来和节点进 ...

  2. Linux上安装编译工具链

    在Linux上安装编译工具链,安装它会依赖dpkg-dev,g++,libc6-dev,make等,所以安装之后这些依赖的工具也都会被安装.ubuntu软件库中这么描述 Informational l ...

  3. 如何在Debian 9上安装和使用Docker

    介绍 Docker是一个简化容器中应用程序进程管理过程的应用程序.容器允许您在资源隔离的进程中运行应用程序.它们与虚拟机类似,但容器更便携,更加资源友好,并且更依赖于主机操作系统. 在本教程中,您将在 ...

  4. rancher下的kubernetes之三:在linux上安装kubectl工具

    本章是<rancher下的kubernetes>系列之三,前面两章我们完成了racher下搭建kubernetes环境的实战,本章我们来安装kubectl工具: 系列文章地址 <ra ...

  5. vSphere Client上安装虚拟机工具VMware Tools

    vSphere Client上安装虚拟机工具VMware Tools 1.安装虚拟机 具体安装步骤就不详述了,安装虚拟机之后右击虚拟机名->客户机->安装/升级VMware Tools,这 ...

  6. 在CentOS7.6上安装自动化运维工具Ansible以及playbook案例实操

    前言 Ansible是一款优秀的自动化IT运维工具,具有远程安装.远程部署应用.远程管理能力,支持Windows.Linux.Unix.macOS和大型机等多种操作系统. 下面就以CentOS 7.6 ...

  7. 自动化服务安装部署工具-Ansible

    自动化运维工具Ansible详细部署 ================================================================================= ...

  8. 自动化工具-ansible服务部署与使用

    1.前言 1.1ansible软件介绍 python 语言是运维人员必须会的语言 ansible 是一个基于python 开发的自动化运维工具 其功能实现基于ssh远程连接服务 ansible 可以实 ...

  9. 运维自动化工具ansible

    企业级自动化运维工具应用实战ansible 公司计划在年底做一次大型市场促销活动,全面冲刺下交易额,为明年的上市做准备.公司要求各业务组对年底大促做准备,运维部要求所有业务容量进行三倍的扩容,并搭建出 ...

随机推荐

  1. 使用javascript解一道关于会议日程安排的面试题

    这道面试题是从 HarrisonHao 的一篇博文中看到的:原文链接 我看到之后,感觉此题十分有趣,遂自己用 node.js 以不同的思路实现了一遍,实现中使用了 lodash 原题比较长,而且是英文 ...

  2. ASP.NET使用ajax实现分页局部刷新页面

    listview列表实现分页是非常容易的.ListView分页是非常简单的,加上一个DataPager控件,把ListView的ID赋予就可以了.最开始我就是这么写的.(网上有人说这样是伪分页?) & ...

  3. 设置int、float型数据的输出格式

    设置整型输出的有效位数,比如在输出时间时时.分.秒都是两位有效数字,如果是5分钟应该输出00:05:00.需要加上头文件<iomanip> cout<<setw(2)<& ...

  4. cuda编程学习4——Julia

    书上的例子编译会有错误,修改一下行即可. __device__ cuComplex(float a,float b):r(a),i(b){} /* ========================== ...

  5. javaScript绑定事件委托 demo

    事件绑定通常发生在 onload 或 DOMContentReady , 事件绑定占用 处理时间 占用内存, 而且不是每个事件都会被 点击执行. 由此 事件委托 可以优化事件绑定行为.. 事件逐层冒泡 ...

  6. TIME_WAIT 另一种解决方式 SO_LINGER

         被TIME_WAIT问题烦得不行,又发现了另一种解决方式,SO_LINGER.      对SO_LINGER解释最通用的自然是<UNP>,现摘录如下      SO_LINGE ...

  7. 用Java实现将多级文件夹下的所有文件统一放到一个文件夹中

    每次下了电影(男生懂得呦),每部电影都放在一个单独的文件夹里,看的时候很是不方便啊,一直重复着进入文件夹.后退,再进.再退的操作,而手动把这些电影全部复制出来又太繁琐.因此为了解决这个问题,用IO写了 ...

  8. 玩玩 Nginx 2-----给Nginx添加第三方模块(动态更新upstream)

          接上一篇,我们在初始化安装的时候添加了nginx_lua模块,然后了解到nginx不可以动态加载模块,所以当你安装第三方模块的时候需要覆盖nginx文件.接下来一起看看如何安装nginx第 ...

  9. cent os 直接访问谷歌的脚本实现

    https://github.com/DingGuodong/GoogleHostsFileForLinux/blob/master/replaceLocalHostsFileAgainstGfw.s ...

  10. python学习随笔(二)

    今天主要是用户输入输出,字符拼接. 在python中,多行注释是3个单引号或双引号 单行注释是#号开头,如下. ''' name = "xiaoming" print(name) ...