Ansible快速实战指南----多机自动化执行命令、部署神器
1、需求:
需要在多台主机上,发送文件、执行命令,进行快速部署
2、ansible 远程复制文件
例子:在当前节点(20.88.14.7) 上向其他指定的节点发送文件
(1)创建host---基于密码连接其他节点
vim host
[ip_list]
20.88.14.8 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass="root"
20.88.14.9 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass="root"
(2)创建测试文件
vim test_ansible.sh
(3)远程复制文件到各个节点
ansible ip_list -i ./host -m copy -a "src=./test_ansible.sh dest=/root/"
解释:
-i :指定hosts文件路径, 默认default=/etc/ansible/hosts -m :要执行的模块,默认为command(这里使用的是copy模块,更多模块见 后文,4(3)ansible常用模块) -a:指定模块的参数 (可增加权限参数:owner=root mode=777)
copy模块:
[root@node1 ~]# ansible-doc -s copy
- name: 将文件复制到被管理主机
action: copy
backup # 创建一个备份文件包括时间戳信息,如果以某种方式重创错了,还可以拿回原始文件
content # 取代src=,表示直接用此处指定的信息生成为目标文件内容;
dest= # 远程节点存放文件的路径,必须是绝对路径
directory_mode # 递归复制设置目录权限,默认为系统默认权限
force # 如果目标主机包含该文件,但内容不同,如果设置为yes,则强制覆盖,如果设置为no,则只有当目标主机的目标位置不存在该文件时,才复制。默认为yes
group # 复制到远程主机后,指定文件或目录的属
mode # 复制到远程主机后,指定文件或目录权限,类似与 'chmod' 指明如 0644
owner # 复制到远程主机后,指定文件或目录属主
src # 要复制到远程主机的文件在本地的地址,可以是绝对路径,也可以是相对路径。如果路径是一个目录,它将递归复制。
在这种情况下,如果路径使用"/"来结尾,则只复制目录里的内容,如果没有使用"/"来结尾,则包含目录在内的整个内容全部复制,类似于rsync。
(4)执行结果:
当前节点执行成功的结果:

其他节点:

3、ansible 远程执行命令,修改 test_ansible.sh 的名字为 test_ansible_new.sh
(1)创建host---基于密码连接其他节点
同前
(2)远程执行命令,改名
ansible ip_list -i ./host -m command -a "mv /root/test_ansible.sh /root/test_ansible_new.sh"
解释:
command模块(命令模块,默认模块,用于在远程主机执行命令,缺点:运行的命令中无法使用变量,管道。如果需要使用管道、变量,请使用raw模块,或者shell模块)
[root@node1 ~]# ansible-doc -s command chdir # 在执行命令之前,先切换到该目录
creates # 一个文件名,当这个文件存在,则该命令不执行,可以用来做判断
executable # 切换shell来执行命令,需要使用命令的绝对路径
free_form= #要执行的Linux指令,一般使用Ansible的-a参数代替。
removes #一个文件名,这个文件不存在,则该命令不执行,与creates相反的判断
(3)执行结果
本节点(20.88.14.7):

其他节点:

4、参考:
(1)ansible的安装和连接
https://www.cnblogs.com/yanjieli/p/10969089.html
(2)ansible常用参数
https://www.cnblogs.com/tyk3201/p/12383081.html
(3)ansible常用模块
https://www.cnblogs.com/ccorz/p/ansible-chang-yong-mo-kuai.html
Ansible快速实战指南----多机自动化执行命令、部署神器的更多相关文章
- ansible使用shell模块在受控机上执行命令(ansible2.9.5)
一,ansible的shell模块和command模块的区别? shell模块:在远程主机上执行主控端发出的shell/python脚本 command模块:不能调用shell指令,没有bash的环境 ...
- ADO.NET 快速入门(二):执行命令
Commands发出针对数据库的数据存储动作.例如,你可以执行一条命令插入或者删除数据.获取更多从数据库移动数据相关的信息,请参考“Update a Database from a DataSet”. ...
- Maven捆绑TestNG实现测试自动化执行、部署和调度
一. 需求介绍 自动化测试,尤其是接口测试时,要写大量的测试用例,这些测试用例我们当然首选使用TesteNG编写,用例数量大,还涉及各种依赖包之类的问题,因此用Maven管理也是最方便最易实现的. 面 ...
- Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件
一.Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,ce ...
- Linux实战教学笔记25:自动化运维工具之ansible (一)
第二十五节 ansible之文件的批量分发 标签(空格分隔): Linux实战教学笔记-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品,允许转 ...
- 项目实战10.1—企业级自动化运维工具应用实战-ansible
实战环境: 公司计划在年底做一次大型市场促销活动,全面冲刺下交易额,为明年的上市做准备.公司要求各业务组对年底大促做准备,运维部要求所有业务容量进行三倍的扩容,并搭建出多套环境可以共开发和测试人员做测 ...
- Ansible快速上手
ansible 是通过python 语言开发的自动化运维工具,可以实现批量系统设置.批量程序部署.批量执行命令等功能 下面是基于docker使用ansible测试示例,可以让新手快速上手使用 一.新建 ...
- Ansible批量在远程主机执行命令
Ansible直接执行远程命令,不用ssh登陆交互执行. 如下: ansible all -i 192.168.199.180, -m shell -a "ifconfig" -u ...
- 新书推荐《再也不踩坑的Kubernetes实战指南》
<再也不踩坑的Kubernetes实战指南>终于出版啦.目前可以在京东.天猫购买,京东自营和当当网预计一个星期左右上架. 本书贴合生产环境经验,解决在初次使用或者是构建集群中的痛点,帮 ...
随机推荐
- 2021大厂Android面试高频100题最新汇总(附答案详解)
前言 现在越来越多的人应聘工作时都得先刷个几十百来道题,不刷题感觉都过不了面试. 无论是前后端.移动开发,好像都得刷题,这么多人通过刷题过了面试,说明刷题对于找工作还是有帮助的. 不过这其中有一个问题 ...
- 一、MinIO的基本概念
MinIO的官方网站非常详细,以下只是本人学习过程的整理 一.MinIO的基本概念 二.Windows安装与简单使用MinIO 三.Linux部署MinIO分布式集群 四.C#简单操作MinIO 一. ...
- Windows安装Hyper-V并优化部署Linux虚拟机
安装Hyper-V 打开服务器管理器-->添加角色和功能-->下一步,选择Hyper-V,如图所示 然后一直默认往下走,一直到安装完成,然后重新启动计算机,如图所示 其中涉及的虚拟交换机. ...
- 7.算法竞赛中的常用JAVA API :String 、StringBuilder、StringBuffer常用方法和区别(转载)
7.算法竞赛中的常用JAVA API :String .StringBuilder.StringBuffer常用方法和区别 摘要 本文将介绍String.StringBuilder类的常用方法. 在j ...
- Linux统计文本中某个字符串出现的次数
常用的有如下两种方式: 1.VIM 用vim打开文件,然后输入: :%s/hello//gn 如下图: 图中的例子就是统计文本中"hello"字符串出现的次数 说明: %s/pat ...
- Python语言系列-04-高阶函数
闭包 #!/usr/bin/env python3 # author:Alnk(李成果) # 什么是闭包 # 1,闭包存在于函数中 # 2,闭包就是内层函数对外层函数(非全局变量)的引用 # 3,最内 ...
- VRRP的基本配置
一.实验拓扑 二.实验编址 三.实验步骤: 1.设置PC的IP等信息 2.启动设备(全选) 3.设置路由器端口ip 4. 配置ospf网络 查看: 5.配置VRRP协议 配置完成后查看: 6.验证主备 ...
- one_gadget的一些姿势
概要 one_gadget是libc中存在的一些执行execve("/bin/sh", NULL, NULL)的片段,当可以泄露libc地址,并且可以知道libc版本的时候,可以使 ...
- 题解 Cicada 拿衣服
传送门 神仙题! 听@Yubai给我讲了半个下午,快%@Yubai 见到这些奇奇怪怪的题是不是应该试着证下状态数上界啊 首先观察题目里给的柿子,可以发现 \(or-and\) 单调增, \(min-m ...
- ffmpeg第6篇:滤镜语法
前言 哈哈,回来继续填坑了,前段时间较忙没时间写,现在继续~ 简介 滤镜是ffmpeg的一个很强大的功能,它支持许多有用的视频处理功能,常见的滤镜如:缩放.旋转.水印.裁剪等 一个比较经典的滤镜使用方 ...