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. 解决mongodb的安装mongod命令不是内部或外部命令

    1:安装 去mongodb的官网http://www.mongodb.org/downloads下载32bit的包 解压后会出现以下文件 在安装的盘C:下建立mongodb文件夹,拷贝bin文件夹到该 ...

  2. MongoDB与python交互

    1.Pymongo PyMongo是Mongodb的Python接口开发包,是使用python和Mongodb的推荐方式.官方文档 2.安装 进入虚拟环境 sudo pip install pymon ...

  3. Effective Java 第三版——43.方法引用优于lambda表达式

    Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...

  4. Python logger /logging

    # !/user/bin/python # -*- coding: utf-8 -*- ''' subprocess : 需要在linux平台上测试 shell logging ''' import ...

  5. MyBatis 中一对一和一对多的映射关系

    1 一对一映射 比如每位学生有一个地址. public class Address { private Integer addrId; private String street; private S ...

  6. Elasticsearch笔记五之java操作es

    Java操作es集群步骤1:配置集群对象信息:2:创建客户端:3:查看集群信息 1:集群名称 默认集群名为elasticsearch,如果集群名称和指定的不一致则在使用节点资源时会报错. 2:嗅探功能 ...

  7. 新版知乎登录之post请求

    前言 在上一篇文章中给大家讲解了requests发送post请求的几种方式,并分析了一些使用陷阱. 疑惑 在文章发表之后,有朋友给我留言说,知乎登录就没有使用提交Form表单(application/ ...

  8. BZOJ_1014_[JSOI2008]火星人prefix_splay+hash

    BZOJ_1014_[JSOI2008]火星人prefix_splay+hash 题意:火星人最近研究了一种操作:求一个字串两个后缀的公共前缀.比方说,有这样一个字符串:madamimadam, 我们 ...

  9. maven+springmvc的配置

    1. 首先创建1个mavenweb项目  如果没有的话最好是去官网下载一个最新版本的eclipse  里面什么都有 maven/gradle 啥的 2. 选择路径   没啥影响 就是一个路径 默认就行 ...

  10. 轻松搞定JSONP跨域请求

    一.同源策略 要理解跨域,先要了解一下"同源策略".所谓同源是指,域名,协议,端口相同.所谓"同源策略",简单的说就是基于安全考虑,当前域不能访问其他域的东西. ...