Ansible自动化运维工具安装与使用实例
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自动化运维工具安装与使用实例的更多相关文章
- Ansible自动化运维工具-上
[Ansible特点] 1)Ansible与saltstack均是基于Python语言开发的 2)安装使用简单,基于不同插件和模块实现各种软件,平台,版本的管理以及支持虚拟容器多层级的部署 3)不需要 ...
- Ansible 自动化运维工具
Ansible 自动化运维工具 Ansible是什么? Ansible是一个"配置管理工具"也是一个"自动化运维工具" Ansible 作用: Ansible是 ...
- Ansible自动化运维工具的使用
Ansible自动化运维工具的使用 host lnventory 管理主机 ip root账号密码 ssh端口 core mod ...
- Ansible自动化运维工具及其常用模块
Ansible自动化运维工具及其常用模块 目录 Ansible自动化运维工具及其常用模块 一.Ansible简介 1. Ansible概述 2. Ansible作用 3. Ansible的工作模块 4 ...
- Ansible自动化运维工具使用
概述本文描述自动化运维工具 Ansible 的安装及基础使用方法,包含: Centos 下的安装主机配置Ad-Hoc command(命令行执行)Playbook (任务剧本)Ansible 和 Sa ...
- ansible自动化运维工具使用详解
一. ansible 简介 1. ansible ansible是新出现的 自动化 运维工具 , 基于Python研发 . 糅合了众多老牌运维工具的优点实现了批量操作系统配置.批量程序的部署.批量运行 ...
- Ansible自动化运维工具
ansible软件介绍 python语言是运维人员必会的语言! ansible是一个基于Python开发的自动化运维工具!(saltstack) 其功能实现基于SSH远程连接服务! ans ...
- CentOSLinux系统中Ansible自动化运维的安装以及利用Ansible部署JDK和Hadoop
Ansible 安装和配置 Ansible 说明 Ansible 官网:https://www.ansible.com/ Ansible 官网 Github:https://github.com/an ...
- 三石之道之Ansible自动化运维工具部署
centos6默认python版本为2.6 centos7默认python版本为2.7 ansible需要最低python2.7的支持 总结:centos6要部署ansible工具,需要先升级pyth ...
随机推荐
- 解决mongodb的安装mongod命令不是内部或外部命令
1:安装 去mongodb的官网http://www.mongodb.org/downloads下载32bit的包 解压后会出现以下文件 在安装的盘C:下建立mongodb文件夹,拷贝bin文件夹到该 ...
- MongoDB与python交互
1.Pymongo PyMongo是Mongodb的Python接口开发包,是使用python和Mongodb的推荐方式.官方文档 2.安装 进入虚拟环境 sudo pip install pymon ...
- Effective Java 第三版——43.方法引用优于lambda表达式
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...
- Python logger /logging
# !/user/bin/python # -*- coding: utf-8 -*- ''' subprocess : 需要在linux平台上测试 shell logging ''' import ...
- MyBatis 中一对一和一对多的映射关系
1 一对一映射 比如每位学生有一个地址. public class Address { private Integer addrId; private String street; private S ...
- Elasticsearch笔记五之java操作es
Java操作es集群步骤1:配置集群对象信息:2:创建客户端:3:查看集群信息 1:集群名称 默认集群名为elasticsearch,如果集群名称和指定的不一致则在使用节点资源时会报错. 2:嗅探功能 ...
- 新版知乎登录之post请求
前言 在上一篇文章中给大家讲解了requests发送post请求的几种方式,并分析了一些使用陷阱. 疑惑 在文章发表之后,有朋友给我留言说,知乎登录就没有使用提交Form表单(application/ ...
- BZOJ_1014_[JSOI2008]火星人prefix_splay+hash
BZOJ_1014_[JSOI2008]火星人prefix_splay+hash 题意:火星人最近研究了一种操作:求一个字串两个后缀的公共前缀.比方说,有这样一个字符串:madamimadam, 我们 ...
- maven+springmvc的配置
1. 首先创建1个mavenweb项目 如果没有的话最好是去官网下载一个最新版本的eclipse 里面什么都有 maven/gradle 啥的 2. 选择路径 没啥影响 就是一个路径 默认就行 ...
- 轻松搞定JSONP跨域请求
一.同源策略 要理解跨域,先要了解一下"同源策略".所谓同源是指,域名,协议,端口相同.所谓"同源策略",简单的说就是基于安全考虑,当前域不能访问其他域的东西. ...