1.准备两台服务器,要确定网络是通的。服务器当然越多越好啦。。。。Ansible的简介和好处我就不多说了,自己看百科去(*╹▽╹*)

IP:192.168.139.100
IP:192.168.139.110

2.把192.168.139.100这台服务器当master,110这台服务器做slave。在master服务器上安装ansible

[root@master~]# yum install epel-release -y
[root@master~]# yum install ansible -y

3.添加slave到管理的主机组,将slave的ip添加到hosts下,先简单添加,主机分组后面再谈。

[roo@master~]# vi /etc/ansible/hosts

4.master  ssh秘钥配对,不用设置密码,这样会在root下生成.ssh目录,如果设置的了密码,每次执行ansible时,都会提示输入密码。

[root@master~]# ssh-keygen -t rsa

5.将公钥拷贝到slave的.ssh/authorized_keys目录下,实现免密码登录远程管理主机

[root@master~]#ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.139.110

6.完成后,可以测试下

[root@master~]#ansible all -m ping

7.成功返回如下,如果有警告,可在vi /etc/ansible/ansible.cfg将警告改为false。

192.168.139.110 | SUCCESS => {
"changed": false,
"ping": "pong"
}

8.测试成功,说明已经可控制slave,下面介绍几个常用的模块。ansible的选项参数我就不过多介绍了,可自行度娘

9.模块command/shell/raw。。。。。发现返回都是一样。它们的区别就在于command模块不是调用的shell的指令,所以没有bash的环境变量,也不能使用shell的一些操作方式,其他和shell没有区别。

而shell模块调用的是/bin/sh指令执行,raw很多地方和shell类似,更多的地方建议使用shell和command模块。但是如果是使用老版本python,需要用到raw,又或者是客户端是路由器,因为没有安装python模块,那就需要使用raw模块了。

注意:command模块不能使用  ‘’ | ‘’符,而shell和raw可用

[root@root ansible]# ansible 192.168.139.110 -m command -a 'ls -l /tmp'
[root@root ansible]# ansible 192.168.139.110 -m shell -a 'ls -l /tmp'
[root@root ansible]# ansible 192.168.139.110 -m raw -a 'ls -l /tmp'

10.copy模块 ,src参数指的是本地对象文件或文件夹,dest参数是远程主机存放的位置,mode参数为复制对象设置权限,backup参数文件存在的时候可以选择覆盖之前,将源文件备份.

[roo@master~]#ansible 192.168.139.110 -m copy -a 'src=/tmp/a.playbook dest=/tmp/a.playbook mode=664 backup=yes'
192.168.139.110 | SUCCESS => {
    "changed": true,
    "checksum": "51e3349a716098db6c1b017be22cacbfb2d735bb",
    "dest": "/tmp/a.playbook",
    "gid": 0,
    "group": "root",
    "md5sum": "08817797fef316008f89397ce9ed79a1",
    "mode": "0664",
    "owner": "root",
    "size": 167,
    "src": "/root/.ansible/tmp/ansible-tmp-1521703323.39-7112136437252/source",
    "state": "file",
    "uid": 0
}

11.file模块,设置文件的属性。path参数设置的文件的对象,owner参数设置文件的拥有者,group参数设置文件的组别,mode参数设置文件的权限

[root@master ~]# ansible webserver -m file -a 'path=/tmp/a.playbook owner=user1 group=user1 mode=664'
192.168.139.110 | SUCCESS => {
    "changed": true,
    "gid": 500,
    "group": "user1",
    "mode": "0664",
    "owner": "user1",
    "path": "/tmp/a.playbook",
    "size": 167,
    "state": "file",
    "uid": 500
}

12.user/group模块,添加用户模块,name参数要添加的用户名,group参数用户的属组

[root@master~]#ansible 192.168.139.110 -m user -a "name=user2 group=root"

13.删除刚才添加的用户

[root@master~]#ansible 192.168.139.110 -m user -a "name=user2 state=absent remove=yes"

14.添加组别

[root@master~]#ansible 192.168.139.110 -m group -a "name=user2"

15.删除组别

[root@master~]#ansible 192.168.139.110 -m group -a "name=testgrp01 state=absent"

16.script模块,可以在slave对象运行master脚本

[root@master~]#ansible 192.168.139.110 -m script -a /tmp/b.sh

17.ansible的模块很多,还可以自定义模块。

18.写一个简单的playbook,vi /tmp/hello.playbook

- hosts: 192.168.139.110
tasks:
- name: say hello task
shell: echo "Hello World"

19.执行palybook

[root@master~]#ansible-playbook a.playbook

20.仅供参考

Ansible自动化运维工具安装与使用实例的更多相关文章

  1. Ansible自动化运维工具-上

    [Ansible特点] 1)Ansible与saltstack均是基于Python语言开发的 2)安装使用简单,基于不同插件和模块实现各种软件,平台,版本的管理以及支持虚拟容器多层级的部署 3)不需要 ...

  2. Ansible 自动化运维工具

    Ansible 自动化运维工具 Ansible是什么? Ansible是一个"配置管理工具"也是一个"自动化运维工具" Ansible 作用: Ansible是 ...

  3. Ansible自动化运维工具的使用

                                 Ansible自动化运维工具的使用       host lnventory 管理主机 ip  root账号密码 ssh端口 core mod ...

  4. Ansible自动化运维工具及其常用模块

    Ansible自动化运维工具及其常用模块 目录 Ansible自动化运维工具及其常用模块 一.Ansible简介 1. Ansible概述 2. Ansible作用 3. Ansible的工作模块 4 ...

  5. Ansible自动化运维工具使用

    概述本文描述自动化运维工具 Ansible 的安装及基础使用方法,包含: Centos 下的安装主机配置Ad-Hoc command(命令行执行)Playbook (任务剧本)Ansible 和 Sa ...

  6. ansible自动化运维工具使用详解

    一. ansible 简介 1. ansible ansible是新出现的 自动化 运维工具 , 基于Python研发 . 糅合了众多老牌运维工具的优点实现了批量操作系统配置.批量程序的部署.批量运行 ...

  7. Ansible自动化运维工具

    ansible软件介绍 python语言是运维人员必会的语言!  ansible是一个基于Python开发的自动化运维工具!(saltstack)  其功能实现基于SSH远程连接服务!  ans ...

  8. CentOSLinux系统中Ansible自动化运维的安装以及利用Ansible部署JDK和Hadoop

    Ansible 安装和配置 Ansible 说明 Ansible 官网:https://www.ansible.com/ Ansible 官网 Github:https://github.com/an ...

  9. 三石之道之Ansible自动化运维工具部署

    centos6默认python版本为2.6 centos7默认python版本为2.7 ansible需要最低python2.7的支持 总结:centos6要部署ansible工具,需要先升级pyth ...

随机推荐

  1. Windows下SVN命令行工具使用详解

    根据我的记忆,似乎Windows 7下自自带一个svn命令行工具.如果你的机器没有,不必担心.你可以从http://subversion.tigris.org获 取subversion for win ...

  2. Android 增强版百分比布局库 为了适配而扩展

    转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/46767825: 本文出自:[张鸿洋的博客] 一 概述 上周一我们发布了Andr ...

  3. anguments

    anguments是一个对象,长得很像数组的对象,但不是数组,而是伪数组. arguments的内容是函数运行时的实参列表 (function(d, e, f) { console.log(argum ...

  4. bzoj 3126 单调队列优化dp

    能转移的最左是其左边完整区间的最右左端点,最右是能覆盖它的最左左端点-1 #pragma GCC optimize ("O3") #include<cstdio> #i ...

  5. 【最小生成树】Bzoj1601[Usaco2008 Oct]灌水

    Description Farmer John已经决定把水灌到他的n(1<=n<=300)块农田,农田被数字1到n标记.把一块土地进行灌水有两种方法,从其他农田饮水,或者这块土地建造水库. ...

  6. Postman-----设置环境变量

    1.环境变量的作用域: 使用环境变量(可用于切换开发环境/生产环境.设置动态参数),有4个作用域(优先级由高到低):Global, Environment, Local, Data.同名变量会使用优先 ...

  7. appium 报错:AttributeError:"NoneType' object has no attribute 'XXX'

    报错截图如下: 问题原因: 根据以上报错提示可已看到问题的原因为:logger中没有info此方法的调用,点击"具体报错的位置"上面的链接,可直接定位到具体的报错位置.根据分析所得 ...

  8. appium+python+eclipse 自动化测试框架构建!

    经过几天的慢慢研究,现将所需用的自动化框架进行了构建,在后期的代码编写中,直接在框架中套用编写对应的module.case等即可,以此来简化测试方式,提高代码的编写效率与规范 基本的架构设计流程图,如 ...

  9. 微服务架构 - 基于Harbor构建本地镜像仓库

    之前写过<搭建docker本地镜像仓库并提供权限校验及UI界面>文章,然后有同仁评论道这样做太复杂了,如果Harbor来搭建会更简单同时功能也更强大.于是抽时间研究了基于Harbor构建本 ...

  10. 【Teradata SQL】从中文数字字母混合字符串中只提取数字regexp_substr

    目标:从中文数字字母的字符串中只提取数字 sel regexp_substr('mint choc中文11国1','\d+')