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 ...
随机推荐
-
(转)ubuntu apache2 的负载均衡和反向代理
apache功能其实很是强大,最近一段时间研究了下apache的反向代理和负载均衡,反向代理网协的外网出口和我的博客出口就是通过apache的反向代理实现的,总结一下,重点说说负载均衡的配置. 首先说 ...
-
JQuery 快速入门一篇通
JQuery是什么? JQuery 是一套JavaScript库, 使用它,可以很方便的进行 JavaScript的编程.比如: 获取页面元素, 修改页面元素的CSS样式等等都可以以很简单的语法完成. ...
-
POJ 3259 Wormholes 虫洞(负权最短路,负环)
题意: 给一个混合图,求判断是否有负环的存在,若有,输出YES,否则NO.有重边. 思路: 这是spfa的功能范围.一个点入队列超过n次就是有负环了.因为是混合图,所以当你跑一次spfa时发现没有负环 ...
-
python numpy 使用笔记 矩阵操作
(原创文章转载请标注来源) 在学习机器学习的过程中经常会用到矩阵,那么使用numpy扩展包将是不二的选择 建议在平Python中用多维数组(array)代替矩阵(matrix) 入门请考 http:/ ...
-
使用angular4和asp.net core 2 web api做个练习项目(三)
第一部分: http://www.cnblogs.com/cgzl/p/7755801.html 第二部分: http://www.cnblogs.com/cgzl/p/7763397.html 后台 ...
-
Python 基础【一】
python运行流程 一.变量及注释 命名: 合法-变量名由字母.数字和下划线组成,并且不能以数字开头.以下保留字不可以当变量名: ['False', 'None', 'True', 'and', ' ...
-
java游戏开发杂谈 - 创建一个窗体
package game1; import javax.swing.JFrame; /** * java游戏开发杂谈 * ---demo1:创建一个窗体 * * @author 台哥 * @date ...
-
时序图中的生命线与类绑定(EA)
使用时序图时序图( Sequence Diagram)时,有时候在起初拖放放的对象生命线未绑定相关的类. 如果: 但在后期需要和类进行绑定. 那么需要如下设置,右键你要关联的对象生命线,选择Advan ...
-
数据如何输入输出_Spark
1)输入:在Spark程序运行中,数据从外部数据空间(如分布式存储:textFile读取HDFS等,parallelize方法输入Scala集合或数据)输入Spark,数据进入Spark运行时数据空间 ...
-
wpf-X名称空间Attribute
1.x:class 该属性用于 后台代码与前端xaml代码连接 代码实例如下图 2.x:ClassModifier 该属性用于控制可见级别 public 等 与C#中的可见级别相同 internal ...