ansible笔记2--ansible windows基础
ansible笔记2--ansible windows基础
- 1 介绍
- 2 环境配置
- 2.1 Windows 环境配置
- 2.2 linux 环境配置
- 3 常见用法
- 4 注意事项
- 5 说明
1 介绍
Ansible是一种IT自动化工具,它不仅可以用于控制Linux,还可以用来控制Windows。它具备了丰富的功能模块,而且可以通过playbook执行一系列的复杂任务。
笔者最近项目中需要批量控制Windows主机执行相关任务,因此选择使用ansible来实现项目的部署、更新、启动和停止等操作。此处对Windows和linux的基础配置进行详细说明,并通过相关实例加以介绍。
2 环境配置
2.1 Windows 环境配置
配置执行策略
查看当前执行策略 Get-ExecutionPolicy 配置允许远程执行策略 Set-ExecutionPolicy RemoteSignedwinrm e winrm/config/listener 没有错误提示即为正常,没有开启则执行 winrm qc
配置基础认证
winrm quickconfig 查看winrm service listener winrm e winrm/config/listener 为winrm service 配置auth winrm set winrm/config/service/auth '@{Basic="true"}' 为winrm service 配置加密方式为允许非加密 winrm set winrm/config/service '@{AllowUnencrypted="true"}
关闭防火墙
若不关闭防火墙,则无法正常访问服务器的相关端口
Control Panel\System and Security\Windows Firewall\Customize Settings 处的私有网络和共有网络都关闭即可。
也可以通过以下命令直接关闭防火墙:关闭防火墙 NetSh Advfirewall set allprofiles state off查看防火墙状态 Netsh Advfirewall show allprofiles
笔者测试配置是否正常和系统版本截图如下:
2.2 linux 环境配置
- 软件安装
pip install ansible pywinrm
- ansible hosts文件配置
mkdir /etc/ansible vim /etc/ansible/hosts [windows]10.202.21.138 [windows:vars] ansible_ssh_user="user" # 登陆机器用户名称 ansible_ssh_pass="password" # 登陆密码 ansible_connection="winrm" ansible_ssh_port=5985 # 默认为5985 ansible_winrm_server_cert_validation=ignore
- 测试 ansible
ansible 10.202.21.138 -m win_ping 此处也可以将 ip 改为上述hosts中的 windows, 若上述hosts的 windows 中包括多个ip,则会对所有的ip执行 win_ping 操作
测试结果:
3 常见用法
ansible 提供了很多常见的操作Windows的模块,例如 win_ping,win_command,win_copy,win_file,win_path,win_shell 等,以下对部分模块进行案例介绍,
详细模块说明参考:Ansible.Windows 常见模块
- win_ping 测试机器连通性
ansible 10.202.21.138 -m win_ping 输出: 10.202.21.138 | SUCCESS => {"changed": false, "ping": "pong" }
- 查看windows facts
ansible 10.202.21.138 -m setup 输出: 10.202.21.138 | SUCCESS => {"ansible_facts": {"ansible_architecture": "64-bit", "ansible_architecture2": "x86_64", "ansible_bios_date": "04/01/2014", "ansible_bios_version": "1.7.5-20140531_083030-gandalf", "ansible_date_time": {"date": "2021-02-09", ......"iso8601": "2021-02-09T15:46:52Z", ......"year": "2021"}, "ansible_distribution": "Microsoft Windows Server 2016 Standard", "ansible_distribution_major_version": "10", "ansible_distribution_version": "10.0.14393.0", "ansible_domain": "", "ansible_env": {"ALLUSERSPROFILE": "C:\\ProgramData", "APPDATA": "C:\\Users\\Administrator\\AppData\\Roaming", ......"windir": "C:\\Windows"}, "ansible_fqdn": "WIN-91SUTJ9K7N7", "ansible_hostname": "WIN-91SUTJ9K7N7", "ansible_interfaces": [{"connection_name": "Ethernet", "default_gateway": "10.202.21.129", "dns_domain": null, "interface_index": 8, "interface_name": "Intel(R) PRO/1000 MT Network Connection", "macaddress": "52:54:00:9E:C4:EF"}], "ansible_ip_addresses": ["fe80::d59:4ee4:ff5c:2af4%8", "10.202.21.138", "fe80::5efe:10.202.21.138%3", "2001:0:348b:fb58:2c20:306a:d545:8f82", "fe80::2c20:306a:d545:8f82%6"], "ansible_kernel": "10.0.14393.0", "ansible_lastboot": "2021-02-02 18:16:59Z", ......"ansible_powershell_version": 5, "ansible_processor": ["0", "GenuineIntel", "Intel Core Processor (Broadwell)", "1", "GenuineIntel", "Intel Core Processor (Broadwell)", "2", "GenuineIntel", "Intel Core Processor (Broadwell)", "3", "GenuineIntel", "Intel Core Processor (Broadwell)"], "ansible_processor_cores": 1, "ansible_processor_count": 4, ......"ansible_windows_domain_role": "Stand-alone server", "gather_subset": ["all"], "module_setup": true}, "changed": false }
- 执行win_shell 命令
ansible windows -m win_shell -a 'date >> C:\xg\date.txt'
- 创建安装包目录
ansible 10.202.21.138 -m win_file -a 'path=C:\xg\package state=directory'
- 同步安装包
ansible 10.202.21.138 -m win_copy -a 'src=./package/Anaconda2-5.3.1-Windows-x86_64.exe dest=C:\xg\package\Anaconda2-5.3.1-Windows-x86_64.exe'
- 安装软件
ansible 10.202.21.138 -m win_package -a 'state=present path=C:\xg\package\Anaconda2-5.3.1-Windows-x86_64.exe arguments=/InstallationType=AllUsers /S'
- 配置环境变量:(该变量提供了基础py环境)
ansible 10.202.21.138 -m win_path -a 'state=present elements=C:\ProgramData\Anaconda2' 注意,环境变量直接单个的添加,如果 elements=aa;bb; 则每次执行后会追加环境变量。
4 注意事项
- Windows系统必须要关闭防火墙,否则无法正常访问ansible端口
- 使用环境变量最好每次单个执行,多个放在一起容易出现多次执行不幂等的情况(追加环境变量)。
- 需要确保ansible hosts中的主机用户是登录状态,若注销了该用户则会导致无法通过指定用户访问Windows的情况,从而出现执行失败的现象。
5 说明
参考文档
ansible/latest/user_guide/windows_dsc
Ansible控制windows端设置
Ansible.Windows 常见模块
运维派 ansible教程
运维者说 ansible笔记18篇软件环境
主控机为ubuntu1804 server版本,
被控机为Windows ,
登录Windows的客户端工具:ubuntu Desktop系统直接使用内置的 Remmina 即可,mac 系统直接从应用商店下载免费的Parallels Client即可。
ansible笔记2--ansible windows基础相关推荐
- ansible笔记(11):初识ansible playbook(二)
ansible笔记(11):初识ansible playbook(二)有前文作为基础,如下示例是非常容易理解的:--- - hosts: test211remote_user: roottasks:- ...
- ansible笔记(5):常用模块之文件操作(二)
ansible笔记(5):常用模块之文件操作(二)文件操作类模块find模块 find模块可以帮助我们在远程主机中查找符合条件的文件,就像find命令一样.此处我们介绍一些find模块的常用参数,你可 ...
- ansible笔记汇总
写作时间:2022年2月 系统:centos 7.9 ansible版本:2.9.27 推荐ansible使用方法 1.不要只用一组秘钥对,多主机按模块用几组ssh秘钥对(保障安全) 2.ssh秘钥对 ...
- ansible笔记(8):常用模块之系统类模块(二)
ansible笔记(8):常用模块之系统类模块(二)user模块 user模块可以帮助我们管理远程主机上的用户,比如创建用户.修改用户.删除用户.为用户创建密钥对等操作.此处我们介绍一些user模块的 ...
- ansible笔记(7):常用模块之系统类模块
ansible笔记(7):常用模块之系统类模块cron模块 cron模块可以帮助我们管理远程主机中的计划任务,功能相当于crontab命令.在了解cron模块的参数之前,先写出一些计划任务的示例,示例 ...
- 学习笔记之Windows基础
Windows基础 系统目录.服务.端口.注册表 常用DOS命令及批处理文件 常见快捷键,以及如何优化系统 登录密码PJ.手动清除密码 系统目录 Windows 系统安装目录 C:\Windows ...
- ansible 笔记
为什么80%的码农都做不了架构师?>>> CentOS7 安装 ansible yum install ansible 修改配置文件 /etc/ansible/ansible. ...
- 学习笔记-Windows 基础服务搭建
Windows 基础服务搭建 磁盘管理 例1 新建两个 10G 的硬盘,名称为 A-10-1.A-10-2,挂载到主机; 新建镜像卷,使用所有空间,驱动器号为 D. 1. 开始--管理工具--计算机管 ...
- 自动化运维工具ansible学习+使用ansible批量推送公钥到远程主机
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. 目录: 一.ansible简介 1.1.ansible是什么 1.2.ansible如何工作 ...
最新文章
- linux读取nand的文件,Linux Kernel 之AP读写Nand Flash上的Yaffs2文件的全过程浅析
- 逆转衰老!“70岁”小鼠经过数月治疗,肾脏皮肤血液细胞重返“年轻态”
- leetCode C++ 49. 字母异位词分组 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。
- 计算机考研【211 计算机专业院校 官方排名】教育部 第4次“计算机专业”学科评估
- html地图无法点击,无法触发谷歌地图标记点击事件从HTML按钮
- php检测字符长度(中文)
- GridMask:SOTA 数据增广方法,显著改进分类、检测、分割效果
- 机器人带陀螺仪走钢丝_一言不合就走钢丝,机器人化身“七变美男子”,萌翻你!...
- Android自定义Toast
- SGPN: Similarity Group Proposal Network for 3D Point Cloud Instance Segmentation
- [jQuery]回到顶部
- curl / libcURL ‘tailmatch()’ Cookie 信息泄露漏洞
- 什么是思考?如何主动思考?
- 【问题解决方案】Markdown正文中慎用星号否则容易变斜体
- Internet Explorer 无法打开 Internet 站点
- 如何搭建一个站内搜索引擎(一) 第1章 写在最前
- JavaScript里的两个等于号和三个等于号的区别
- 计算机组装小白,小白怎么从零开始学组装电脑?
- Beautiful english sentences,just for you.
- 海康DVR DS-6708HW RTSP url格式笔记