提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
使用Centos7去管理公司的多台windows主机,使windows上的文件可以批量更新
一、Windows主机上的配置
1.检查windows客户机powershell版本
输入powershell命令进入powershell模式
输入get-host或者$PSVersionTable命令查看powershell版本其中win7、window server 2008的默认powershell版本为powershell 4,windows server2012默认版本为 4,window
10默认版本为5.1。
2.下载并安装Microsoft .NET Framework 4.5和powershell5.1(如果系统中的版本大于或者等于此版本可以不用执行这一步操作)
Microsoft .NET Framework 4.5下载地址:
https://download.microsoft.com/download/B/A/4/BA4A7E71-2906-4B2D-A0E1-80CF16844F5F/dotNetFx45_Full_setup.exe
powershell5.1下载地址:
https://www.filehorse.com/download-windows-powershell-64/37429/
升级powershell后操作系统需重启。
3、升级完成后检查powershell版本
powershell 命令进入 powershell 模式
get-host 或者 $PSVersionTable 命令查看 powershell 版本
4、查看powershell执行策略(如果不是RemoteSigned则修改执行策略)
使用 get-executionpolicy 查看powershell执行策略
使用 set-executionpolicy remotesigned 命令修改策略
5、配置winrm service并启动服务(注意需要使用管理员身份启动cmd)
使用 winrm quickconfig 命令启动winrm服务
有两个提示[y/n]选择y就可以了
6、查看winrm service启动监听状态
使用 winrm enumerate winrm/config/listener 命令启动监听服务
7、修改winrm配置,启用远程连接认证
winrm set winrm/config/service/auth ‘@{Basic=“true”}’
winrm set winrm/config/service ‘@{AllowUnencrypted=“true”}’
8、添加防火墙信任规则,允许5985端口通过
入站规则 -->新建规则 -->端口 -->TCP的5985 -->下一步 -->下一步
二、Centos部分(Ansible管理主机)
重点:千万不要yum安装。选择pip安装,或者二进制包安装。否则,即便安装了pywinrm插件也无法管理Windows主机。
依赖python3环境(没有Python3以上的环境才需要安装)
下载源码
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
解压缩
tar -zxvf Python-3.7.0.tgz
依次执行下面命令进行手动编译
cd Python-3.7.0
./configure prefix=/usr/local/python37
make && make install
添加环境变量( /etc/profile )
export PYTHON_HOME=/usr/local/python37
export PATH=$PYTHON_HOME/bin:$PATH
读取文件使环境变量生效
source /etc/profile
测试python3.7
python3.7 -V
1、安装PIP命令
从官网下载pip包到本地,官网链接:https://pypi.org/project/pip/#files
wget https://files.pythonhosted.org/packages/8e/76/66066b7bc71817238924c7e4b448abdb17eb0c92d645769c223f9ace478f/pip-20.0.2.tar.gz
解压
tar -zxvf pip-20.0.2.tar.gz -C /usr/local
安装
cd /usr/local/pip-20.0.2
python3 setup.py install
2、安装pywinrm插件
pip install pywinrm
3、pip安装ansible
pip install ansible
4、配置文件hosts
配置文件默认路径:
/etc/ansible/hosts
,在此配置文件尾巴追加以下信息,ansible_ssh_user是Windows Server的用户名,ansible_ssh_pass是Windows Server的密码
[all:vars]
ansible_ssh_user=administrator
ansible_ssh_pass=123123
ansible_ssh_port=5985
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore
[windows]
192.168.9.49
5、验证与windows主机的通信
ansible windows -m win_ping
部署时的坑
一开始从网上查资料是用yum安装的ansible,这样安装的ansible是无法控制windows主机,后面找资料找到ansible需要用pip安装或者离线安装的方法才可以识别到winrm模块。文章来源:https://www.toymoban.com/news/detail-465253.html
linux与windows建立信任
windows:命令行进入安装路径,输入:ssh-keygen -t rsa;
windows:其中秘钥输出路径设置为C:\Program Files\OpenSSH\home\当前用户名.ssh,其余全部直接回车;
windows:C:\Program Files\OpenSSH\home\当前用户名.ssh此目录下会生成id_rsa和id_rsa.pub;
windows:拷贝一份id_rsa.pub重命名为authorized_keys;
linux: 进入/root/.ssh,输入:ssh-keygen -t rsa,目录下生成id_rsa和id_rsa.pub;
linux:拷贝一份id_rsa.pub重命名为authorized_keys(在/root/.ssh目录下执行cat id_rsa.pub > authorized_keys);
linux:将windows拷贝来的文件追加至authorized_keys文件中,cat /windows公钥拷贝文件所在目录/id_rsa.pub >> authorized_keys;
windows:将linux的公钥id_rsa.pub文件拷贝至windows,打开C:\Program Files\OpenSSH\home\当前用户名.ssh\authorized_keys文件,将linux的公钥文件的内容直接紧接着该文件本身内容最后复制粘贴在authorized_keys中,不要自行增加多余的换行符空格等;
此时双向scp命令都可以完成免密登录了。文章来源地址https://www.toymoban.com/news/detail-465253.html
到了这里,关于Centos7上的Ansible管理Windows主机的部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!