批量控制教程-Ansible管理windows

背景

你厌恶要手动操作多台机器进行某些重复的操作吗?想象一下,在周五的晚上你想要下班了,但是你得在很多台机器手动发布一些东西,每台机器都要整半小时,整整8台机器,一晚上几个小时可以预见又没了。

ansible使你解脱。写一些配置文件,一条命令执行它,然后等待所有机器同时工作,确认一下没问题,然后举杯庆祝。

一、配置windows主机


1、改powerShell的策略为remotesigned,否则运行不了powerShell脚本文件。

#检查 
get-executionpolicy 
#设置 
set-executionpolicy remotesigned



2、检查powershell的版本是否超过3.0,没有就更新

#检查 
$PSVersionTable.PSVersion



3、配置远程控制

# 启动
winrm winrm qc 
# 设置相关的配置 
winrm set winrm/config/service '@{AllowUnencrypted="true"}' 
winrm set winrm/config/service/auth '@{Basic="true"}'



4、查看winrm配置信息

# 查看winrm配置信息 
winrm get winrm/config

二、配置Linux
1、ubuntu安装ansible

apt update && apt install ansible



2、修改主机清单内容

# 编辑配置文件 
$ sudo vim /etc/ansible/hosts 
#输入以下内容 
[win] 10.11.20.20 
[win:vars] 
ansible_ssh_pass=your_password 
ansible_ssh_user=your_user
ansible_connection=winrm 
ansible_winrm_transport=ntlm
ansible_ssh_port=5985 
ansible_winrm_server_cert_validation=ignore



3、检查是否能联通

# 查看是否ping通 
ansible all -m win_ping 
#在命令后面加上-vvv可以看到更详细的信息 
ansible all -m win_ping -vvv



如果成功

10.11.20.20 | SUCCESS => { "changed": false, "ping": "pong" }

常用模块
win_shell,在双引号里面写入你要的命令即可

ansible win -m win_shell -a "dir"

失败排查


1、如果提示
ansible-win | UNREACHABLE! => { "changed": false, "msg": "plaintext: the specified credentials were rejected by the server", "unreachable": true }
那么在配置主机时,增加

ansible_winrm_transport=ntlm


2、如果你的winrm起不来,提示要把网络连接从公共改为专用
win+R快捷键,输入secpol.msc->网络列表管理器策略->所有网络->右键属性->网络位置设置为“用户可以更改”->在网络和internet设置->以太网->点击当前网络->从公共勾选为专用 并且把所有其他的网络名称属性里的位置,都设置成专用

3、如果控制节点ping不通目标节点,将目标节点的防火墙关闭,或配置防火墙出入口策略,比如打开5985出入口

4、执行一些启动命令会启动进程的,要注意两点:

   4.1 要使用async异步来执行,不然控制端会一直卡住

   4.2 设置async等待时间不能太短、poll不能设置为0,因为太短的话进程还没启动完,这边的命令就中断了,那就不会成功启动;而poll为0,就会马上调到下一个命令,所以不能设置为0

案例:控制rpa部署指令

- name: windows commandshosts: 10.11.20.20tasks:- name: show dirwin_shell: pwdargs:chdir: "D:\\myproject\\pythonproject"- name: Run git pullwin_shell: |git pull "https://user:pass@git.com/your_repo.git" --allow-unrelated-histories masterargs:chdir: "D:\\myproject\\pythonproject"executable: cmd.exe- name: update requirementswin_shell: "pip install -r D:\\myproject\\pythonproject\\pythonrequirements.txt"args:chdir: "D:\\myproject\\pythonproject"executable: cmd.exe- name: stop clientwin_shell: for /f "tokens=2" %i in ('tasklist /v ^| findstr /R "cmd.exe"') do taskkill /T /F /PID %iargs:chdir: "D:\\myproject\\pythonproject"executable: cmd.exeignore_errors: yes- name: stop machinewin_shell: for /f "tokens=2" %i in ('tasklist /v ^| findstr /R /C:"python.*\.exe"') do taskkill /T /F /PID %iargs:chdir: "D:\\myproject\\pythonproject"executable: cmd.exeignore_errors: yes- name: start machinewin_shell: "python command.py >> output.txt"async: 30poll: 2register: task_resultargs:chdir: "D:\\myproject\\pythonproject"ignore_errors: yes- name: start clientwin_shell: curl www.baidu.comargs:executable: cmd.exe

这个案例是写在一个叫windows_commands.yml文件里的,

写好之后,用ansible-playbook windows_commands.yml -vvv  执行就行了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/3223.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LoRA: 大模型的低秩适配

笔记整理:陈一林,东南大学硕士,研究方向为不确定知识图谱规则学习 链接:https://arxiv.org/abs/2106.09685 1、动机 自然语言处理的一个重要范式包括在通用领域数据上进行大规模预训练,然后对特定任务或领域进行适应性…

CentOS命令大全

系统信息查询命令 在CentOS系统中,了解如何查询系统信息对于系统管理和性能监控至关重要。以下是一些基本而强大的命令,用于获取关于您的系统的各种信息。 1. uname - 获取系统信息 uname命令用于打印系统信息,例如内核版本、主机名等。使…

python之schedule

在Python中,可以使用schedule模块来执行定时任务。这个模块提供了简单易用的API,可以让你按照指定的时间间隔或特定时间点执行函数或任务。 首先,需要使用pip安装schedule模块: pip install schedule下面是一个简单的例子&#…

JAVA10迭代更新

文章目录 1 概述2 语法层次的变化1_局部变量的类型推断 3 API层次的变化1_集合中新增copyOf创建只读集合2_Optional 新增了orElseThrow方法 4 其他1_垃圾回收器接口2_G1 并行 Full GC3_应用程序类数据共享(扩展 CDS 功能)4_实验性的基于 Java 的 JIT 编译器 1 概述 2018年3月21…

新能源汽车小米su7

小米su7汽车 function init() {const container document.querySelector( #container );camera new THREE.PerspectiveCamera( 20, window.innerWidth / window.innerHeight, 1, 50000 );camera.position.set( 0, 700, 7000 );scene new THREE.Scene();scene.background ne…

vue项目中基于fabric 插件实现涂鸦画布功能

vue项目中基于fabric 插件实现涂鸦画布功能 一、效果图二、安装依赖三、main.js引入四、主要代码 一、效果图 二、安装依赖 npm install fabric 三、main.js引入 import fabric from fabric Vue.use(fabric);四、主要代码 //封装成了一个组件 <template><el-dialogt…

Java中static关键字的使用与练习

Java中static关键字的使用与练习 在Java编程中&#xff0c;static关键字是一个非常重要的概念&#xff0c;它用于修饰类的成员变量和方法。通过static关键字&#xff0c;我们可以创建与类本身关联而不是与类的实例关联的成员。下面&#xff0c;我们将详细探讨static关键字在Ja…

FlashSpeech、ID-Animator、TalkingGaussian、FlowMap、CutDiffusion

本文首发于公众号&#xff1a;机器感知 FlashSpeech、ID-Animator、TalkingGaussian、FlowMap、CutDiffusion Gradient Guidance for Diffusion Models: An Optimization Perspective Diffusion models have demonstrated empirical successes in various applications and ca…

C语言中的指针常量的常量指针

指针常量和常量指针是C/C编程语言中两个重要的概念&#xff0c;它们都与指针有关&#xff0c;但具有不同的含义和用途。 1. 指针常量&#xff08;Pointer to Constant&#xff09; 指针常量指的是一个指针的值&#xff08;即它所指向的地址&#xff09;在初始化之后不能再被改…

《MATLAB科研绘图与学术图表绘制从入门到精通》示例:绘制婴儿性别比例饼图

在MATLAB 中可以使用 pie 函数来创建饼图。饼图是一种展示不同部分占总体的相对比例的图表。 本示例从“婴儿出生数据.csv”文件读取婴儿出生数据&#xff0c;然后计算男性和女性婴儿的数量&#xff0c;使用MATLAB绘制饼图。 配套图书链接&#xff1a;https://item.jd.com…

Unity 帧同步游戏解决方案梳理

帧同步游戏解决方案梳理 一、保证所有客户端的计算结果一致二、帧同步手感优化&#xff1a;三、不同步问题总结&#xff1a;四、帧同步优化&#xff1a; 一、保证所有客户端的计算结果一致 保证所有客户端的计算结果一致 1、逻辑与显示分离 逻辑控制显示&#xff0c;而显示的执…

AI图书推荐:AI驱动的图书写作工作流—从想法构思到变现

《AI驱动的图书写作工作流—从想法到变现》&#xff08;AI-Driven Book Creation: From Concept to Cash&#xff09;是Martynas Zaloga倾力打造的一本实用指南&#xff0c;它巧妙地将写作艺术与人工智能前沿技术相结合。此书不仅揭示了AI在图书出版领域的无限潜力&#xff0c;…

应用层协议 -- HTTPS 协议

目录 一、了解 HTTPS 协议 1、升级版的 HTTP 协议 2、理解“加密” 二、对称加密 1、理解对称加密 2、对称加密存在的问题 三、非对称加密 1、理解非对称加密 2、中间人攻击 3、CA 证书和数字签名 四、总结 一、了解 HTTPS 协议 1、升级版的 HTTP 协议 HTTPS 也是…

光端机——光纤通信学习笔记(八)

​​​​​​ 光发射机 基本性能要求 合适的发光波长 良好的消光比 合适的输出光功率 调制特性好 基本组成 光源 光源:是实现电光转换的关键器件&#xff0c;在很大程度上决定着光发射机的性能。 (1)发射的光波长应和光纤低损耗“窗口”一致&#xff0c;即中心波长应在 850…

fatal: unable to access ‘https://github.com/alibaba/flutter_boost.git/

Git error. Command: git fetch stdout: stderr: fatal: unable to access ‘https://github.com/alibaba/flutter_boost.git/’: Failed to connect to github.com port 443 after 75005 ms: Couldn’t connect to server exit code: 128 GitHub (国际型)代码 分发平台/托管平…

Mycat(一)入门概述

文章目录 概述作用原理 Mycat1.x 与 Mycat2 功能对比1.x 与 2.0 功能对比图 Mycat2 相关概念概念描述 配置文件1、服务&#xff08;server&#xff09;2、用户&#xff08;user&#xff09;3、数据源&#xff08;datasource&#xff09;4、集群&#xff08;cluster&#xff09;…

XiaodiSec day035 Learn Note 小迪安全学习笔记

XiaodiSec day035 Learn Note 小迪安全学习笔记 记录得比较凌乱&#xff0c;不尽详细 day35 前言 关于 xss 入门 xss 开始 是一个前端的漏洞 数据输入输出的地方容易产生 分类: 反射性存储型DOM 型很多很多 产生过程使用<script>alert(1)</script>弹个窗 …

设计模式- 桥接模式(Bridge Pattern)结构|原理|优缺点|场景|示例

设计模式&#xff08;分类&#xff09; 设计模式&#xff08;六大原则&#xff09; 创建型&#xff08;5种&#xff09; 工厂方法 抽象工厂模式 单例模式 建造者模式 原型模式 结构型&#xff08;7种&#xff09; 适配器…

车企的数智化“内功”,大模型帮修炼

文&#xff5c;白 鸽 编&#xff5c;王一粟 时隔4年回归的北京车展&#xff0c;遇上了中国智能汽车的热潮。 开年价格战的持续洗礼&#xff0c;不仅让一众中国车企都慌得一批&#xff0c;也让全球巨头特斯拉也面临一季度销量大跌局面。 与此同时&#xff0c;智能汽车还在…

C++初识内存管理和模版

目录 前言 1.C/C内存分布 2. C的内存管理方式 2.1 new/delete操作内置类型 2. new和delete操作自定义类型 3. operator new和operator delete函数 4. new和delete的实现原理 4.1 内置类型 4.2 自定义类型 5. malloc/free和new/delete的区别 6. 初识模版 6.1 泛型编…