ansible控制windows的官方翻译
Ansible控制windows
1、 Windows下如何工作
在ansible控制linux的时候,用的是ssh的方式,在windows中,使用的是power shell,在客户端机器上也是不用装任何客户端的。
在控制windows机器的时候,使用的模块为“winrm“。
2、 在控制机上安装
在linux控制机器上安装模块winrm:
pip install "pywinrm>=0.1.1" |
3、 动态目录的支持
如果想连接动态目录下的domain账户,那么必须安装python-kerberos模块在控制机上,并且需要安装MIT krb5库。还需要在动态目录中配置正确的账户。
3.1 安装python-kerberos的依赖
# Via Yum yum -y install python-devel krb5-devel krb5-libs krb5-workstation # Via Apt (Ubuntu) sudo apt-get install python-dev libkrb5-dev # Via Portage (Gentoo) emerge -av app-crypt/mit-krb5 emerge -av dev-python/setuptools # Via pkg (FreeBSD) sudo pkg install security/krb5 # Via OpenCSW (Solaris) pkgadd -d http://get.opencsw.org/now /opt/csw/bin/pkgutil -U /opt/csw/bin/pkgutil -y -i libkrb5_3 # Via Pacman (Arch Linux) pacman -S krb5 |
3.2 安装python-kerberos
安装的时候执行如下指令即可:
pip install kerberos |
3.3 配置kerberos
编辑配置文件/etc/krb5.conf,在其中添加如下的信息,在每个想连接的domain中。
找到如下开头的节:
[realms] |
添加domain的全称,并且添加主要和次要的动态目录域的全名称,如下例子:
[realms] MY.DOMAIN.COM = { kdc = domain-controller1.my.domain.com kdc = domain-controller2.my.domain.com } |
并且在【domain_realm】节中添加每个你想连接的域:
[domain_realm] .my.domain.com = MY.DOMAIN.COM |
3.4 测试kerberos连接
如果安装了krb5-workstation(yum)或者krb5-user(apt_get),那么可以用如下的命令测试是否被域控制器授权:
kinit user@MY.DOMAIN.COM |
注意域的部分必须是全称,并且必须全部为大写。
查看获得的tickets,可以使用命令如下:
klist |
3.5 解决kerberos连接问题
如果使用kerberos不能进行连接,那么检查下列问题:
确保正向和反向DNS在域中能正常解析,在做这个解析的时候,首先ping服务器的名称,然后nslookup服务器的ip地址,会返回服务器的名称
如果在返回的服务器名称和ping的服务器名称不一致,检查动态目录中的DNSScavenging 是开启的,并且DNS和DHCP是相互更新的;
确保ansible控制机在domain中配置了账户属性。
检查ansible控制机的在域控制器中是时钟异步的,kerberos是对时间敏感的,一点时间的偏差会导致tickets失效
确保用的是域全名称,可以使用下面的命令进行检查:
kinit -C user@MY.DOMAIN.COM klist |
当获取到不同的域名称的时候,必须更新配置文件krb5.conf,在其中使用域的全名称。
4、 inventory
ansible对windows的支持依赖于几个常用的变量来表示用户名,密码,连接类型(windows),如下所示:
[windows] winserver1.example.com winserver2.example.com |
在group_vars/windows.yml中,定义以下inventory变量:
# it is suggested that these be encrypted with ansible-vault: # ansible-vault edit group_vars/windows.yml ansible_user: Administrator ansible_password: SecretPasswordGoesHere ansible_port: 5986 ansible_connection: winrm # The following is necessary for Python 2.7.9+ when using default WinRM self-signed certificates: ansible_winrm_server_cert_validation: ignore |
5、 关于powershell版本
Powershell为3.0版本或者更高,只有windows7 sp1,windows server 2008 sp1,和以后的版本支持。
6、 哪些模块是可用的
Windows支持的模块在以下网址中可以找到:
http://docs.ansible.com/ansible/list_of_windows_modules.html |
可以使用script模块来运行powershell脚本,也可以在playbook中使用,如下:
- hosts: windows tasks: - script: foo.ps1 --argument --other-argument |
注意有的模块并不以win开头,如下:
“slurp”, “raw”, and “setup” |
7、 获得windows的fact
ansible winhost.example.com -m setup |
8、 Windows的playbook例子
下面例子表示推送和运行powershell脚本的例子:
- name: test script module hosts: windows tasks: - name: run test script script: files/test_script.ps1 |
运行单个命令的时候,使用raw模块,在linux中是使用command或者shell模块:
- name: test raw module hosts: windows tasks: - name: run ipconfig raw: ipconfig register: ipconfig - debug: var=ipconfig |
运行DOS命令的时候,可以使用CMD /C开头,并且用双引号进行包括,如下:
- name: another raw module example hosts: windows tasks: - name: Move file on remote Windows Server from one location to another raw: CMD /C "MOVE /Y C:\teststuff\myfile.conf C:\builds\smtp.conf" |
最后一个例子用win_stat模块测试文件是否存在,注意返回的日期和linux中稍有不同:
- name: test stat module hosts: windows tasks: - name: test stat module on file win_stat: path="C:/Windows/win.ini" register: stat_file - debug: var=stat_file - name: check stat_file result assert: that: - "stat_file.stat.exists" - "notstat_file.stat.isdir" - "stat_file.stat.size>0" - "stat_file.stat.md5" |
ansible控制windows的官方翻译的更多相关文章
- 【ANSIBLE】ansible控制windows插件安装及运行error与解决方法
一. 问:因pip版本问题无法安装kerberos 答:安装提示需要先安装pip升级包 下载pip9.0.1升级包: https://pypi.python.org/packages/b6/ac/70 ...
- ansible 控制windows
1.installing on the control machine On a Linux control machine: #pip install "pywinrm>=0.1.1 ...
- [转帖]Ansible管理windows集群
Ansible管理windows集群 http://www.cnblogs.com/Dev0ps/p/10026908.html 写的挺好的 我关注点还是不够好呢 最近公司新项目需要安装400+win ...
- 厉害—Ansible管理windows集群
最近公司新项目需要安装400+windows server 2012系统的工作站,想着怎么能像linux下运用ansible批量管理,linux就很简单了有ssh服务 但是下却没这么简单,但还是有办法 ...
- 设置ansible与windows连通性
1.确认powershell的版本,必须是3.0以上 $PSVersionTable.PSVersion 2.确认winrm是否开启命令:winrm quickconfig 3.在windows配置w ...
- ansible控制winserver笔记
原文地址: https://www.cnblogs.com/kingleft/p/6391652.html 环境描述: ansible控制远程windows .系统必须是sp1 .安装framewor ...
- C#实现控制Windows系统关机、重启和注销的方法:
shutdown命令的参数: shutdown.exe -s:关机shutdown.exe -r:关机并重启shutdown.exe -l:注销当前用户 shutdown.exe -s -t 时间:设 ...
- 教程-隐藏/显示任务栏-程序不在任务显示-全面控制Windows
1.隐藏任务条 var h:THandle; //变量h:=FindWindow('Shell_TrayWnd',nil);ShowWindow(h,SW_hide); 2.显示任务条h:=Find ...
- 使用WMI来控制Windows目录 和windows共享机制
1.使用WMI来控制Windows目录 本文主要介绍如何使用WMI来查询目录是否存在.文件是否存在.如何建立目录.删除目录,删除文件.如何利用命令行拷贝文件,如何利用WMI拷贝文件 using Sys ...
随机推荐
- RichLabel基于Cocos2dx+Lua v3.x
RichLabel 简介 RichLabel基于Cocos2dx+Lua v3.x解析字符串方面使用了labelparser,它可以将一定格式的字符串,转换为lua中的表结构扩展标签极其简单,只需添加 ...
- 图片处理工具类 - ImageUtils.java
纯JAVA实现的图片处理工具类,提供图片的裁剪.压缩.获取尺寸.制作圆角等方法. 源码如下:(点击下载 -ImageUtils.java .FolderUtils.java .commons-io-2 ...
- Mac下无法拷贝文件到移动硬盘
Mac下无法拷贝文件到移动硬盘? 是移动硬盘的文件格式的问题. Mac系统无法识别 NTFS 格式的文件. 将移动硬盘格式化为 exFAT 格式的. 别担心,exFAT 格式的硬盘在Windows下也 ...
- JAVA 方法或者类的注释快捷键
JAVA 方法或者类的注释快捷键 /*** 登录验证* @param 传入的* @return* @throws Exception*/这种注释效果 方法: 1.先敲“/”在敲两个**,然后回车 方法 ...
- datagridview中combobox类型的cell选中一个下拉列表之后,立即生效的事件
public event EventHandler CurrentCellDirtyStateChanged 当单元格的内容已更改,但更改尚未保存时,该单元格将标记为已修改. 此事件通常会在以下情况下 ...
- 寄售Consignment和VMI有什么区别?
Consignment 寄存一般是指卖方把货物存放在买方所属仓库,消耗后结帐.库存水平控制和货物的物理管理都由买方负责.这是目前很多大卖场通行的做法.典型的VMI一般也是指卖方把货物存放在买方附近的仓 ...
- 实际利率 > 名义利率
名义利率与实际利率的关系为:实际利率=(1+名义利率/计息周期)计息周期-1. 如计息周期数=1时,两者相等.如计息周期数大于1时,实际利率大于名义利率,当计息周期数小于1时,实际利率小于名义利率. ...
- URAL1133. Fibonacci Sequence(二分)
1133 刚开始还用记忆化推了下公式 后来发现数是非常大的 二分 然后就是精度错误 中间值会很大 乱七八糟的改 #include <iostream> #include<cstdio ...
- android--多View切换viewpager
网上看到viewpager的多view动画切换,模仿制作了一个 学习到了. 先看效果图: 先看主类的layout <LinearLayout xmlns:android=" ...
- @jsonignore的作用
作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响. 如下: package com.hzboy.orm; import java.util.List; impor ...