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 ...
随机推荐
- linux安装tomcat Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
这两天我们的开发机重启了好几次,发现每次重启后我的tomcat总是没有启动.检查java路径,配置正确,后来拿普通账号启动tomcat时报如下的错: Neither the JAVA_HOME nor ...
- Python操作HBase之happybase
安装Thrift 安装Thrift的具体操作,请点击链接 pip install thrift 安装happybase pip install happybase 连接(happybase.Conne ...
- 原生JS和JQuery的区别
1.原生js和jQuery的入口函数加载模式不同 原生js等页面dom加载完成并且图片等资源也加载完成之后才会执行: jQuery则是等页面dom加载完成执行,不会等图片等资源也加载完成: (也就是说 ...
- Inception体验之安装
Inception介绍 MySQL Inception是数据库管理员的工具.它允许DBA构建好的SQL语句,在只读数据集上测试它们,并最终针对生产数据库运行这些SQL语句,并且能够在SQL语句出于某种 ...
- SQL基础操作汇总
SQL基础操作汇总 一.表操作 1.表的创建(CREATE TABLE): 基本语句格式: CREATE TABLE table_name ( col_name datatype, -- ...
- XSS SQL CSRF
XSS(Cross Site Script,跨站脚本攻击)是向网页中注入恶意脚本在用户浏览网页时在用户浏览器中执行恶意脚本的攻击方式.跨站脚本攻击分有两种形式:反射型攻击(诱使用户点击一个嵌入恶意脚本 ...
- 如何运行vue项目
首先,列出来我们需要的东西: node.js环境(npm包管理器) vue-cli 脚手架构建工具 cnpm npm的淘宝镜像 安装node.js 从node.js官网下载并安装node,安 ...
- 【毕业原版】-《巴斯大学毕业证书》Bath一模一样原件
☞巴斯大学毕业证书[微/Q:865121257◆WeChat:CC6669834]UC毕业证书/联系人Alice[查看点击百度快照查看][留信网学历认证&博士&硕士&海归&am ...
- Java8新特性之四:接口默认方法和静态方法
在JDK1.8以前,接口(interface)没有提供任何具体的实现,在<JAVA编程思想>中是这样描述的:"interface这个关键字产生了一个完全抽象的类,它根本就没有提供 ...
- 一段简单的显示当前页面FPS的代码
写前端代码,尤其是做一个前端框架的时候,经常需要及时知道代码的大致性能,这时候如果能有个好的办法能一直看到当前页面的fps就好了. 整体思路是一秒有一千毫秒,先记录当前时间作为最后一次记录fps的时间 ...