IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Ansible在windows的使用 -> 正文阅读

[系统运维]Ansible在windows的使用

Ansible在windows的使用

1.linux离线安装ansible

参考博客: ansible离线安装

相关的安装包:

链接:https://pan.baidu.com/s/1vqUSk3B_XKLAvzFGAr0HIw
提取码:3844

使用相关的命令进行安装:

# 安装包解压
tar -xzvf ansible-2.4-rpms.el7.tar.gz
# 进入安装包
cd ansible-2.4-rpms.el7
# 安装ansible依赖内容
rpm -ivh PyYAML*rpm libyaml*rpm python-babel*rpm python-backports*rpm python-backports-ssl_match_hostname*rpm python-cffi*rpm python-enum34*rpm python-httplib2*rpm python-idna*rpm python-ipaddress*rpm python-jinja2*rpm python-markupsafe*rpm python-paramiko*rpm python-passlib*rpm python-ply*rpm python-pycparser*rpm python-setuptools*rpm python-six*rpm python2-cryptography*rpm python2-jmespath*rpm python2-pyasn1*rpm sshpass*rpm --nodeps --force
# 安装ansible
rpm -ivh ansible-2.4.2.0-2.el7.noarch.rpm

安装完成后查看ansible的版本信息:

image-20211026185651783

另外一种ansible的安装方式时使用 包装好 一个yum源进行安装,未尝试。

2.Linux安装第三方库

当前的python环境版本为2.7.5

image-20211026183755052

下载第三方库,网址为: https://pypi.org/

离线安装的第三方库有:

pywinrm-0.4.2

ntlm-auth-1.1.0.tar.gz

requests_ntlm-1.1.0.tar.gz

xmltodict-0.12.0-py2.py3-none-any.whl

相关的版本信息如下:

image-20211026185318597

image-20211026185236829

image-20211026185352548

image-20211026185423940

3.配置windows系统

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

PS C:\Users\huangp> get-executionpolicy
Restricted
PS C:\Users\huangp> set-executionpolicy remotesigned
PS C:\Users\huangp> get-executionpolicy
RemoteSigned

2.如果Powshell版本不对,执行如下命令更新powshell的版本

目前我是用的是 powershell版本为 5.1.14393

# 查看windows的PowerShell的版本的方法
PS C:\Users\ywwei> host
image-20211026191632386

所以我的版本不需要更新。

下面是更新版本信息命令。

#更新PowerShell 2.0到3.0的脚本:
#https://github.com/ansible/ansible/blob/devel/examples/scripts/upgrade_to_ps3.ps1
#调用的命令可以如下
PS C:\Users\huangp> & "E:/temp/upgrade_ps3.ps1"
#或者
PS C:\> powershell.exe -ExecutionPolicy RemoteSigned   -file "C:\p test.ps1"

3.配置远程控制

下载并运行https://github.com/ansible/ansible/blob/devel/examples/scripts/ConfigureRemotingForAnsible.ps1

如果嫌弃Github下载速度太慢:我上传了到了自己的阿里云盘 链接:https://www.aliyundrive.com/s/opYkwmSnQk5

# 进入我我自己的桌面
PS C:\Users\ywwei> cd C:\Users\ywwei\Desktop
# 执行下载后的powershell脚本
PS C:\Users\ywwei\Desktop> .\ConfigureRemotingForAnsible.ps1

4.在PowerShell中执行:

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

5.查看winrm配置信息

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

4.配置Linux主机清单

修改主机清单内容

# 添加以下内容
$ sudo vim /etc/ansible/hosts

Linux的主机清单如下所示:

# 个人电脑
[windows]
# ywwei的电脑
192.168.56.101 ansible_ssh_user="LG\ywwei" ansible_ssh_pass="Hitrend@0701" ansible_ssh_port=5985 ansible_connection="winrm" ansible_winrm_server_cert_validation=ignore ansible_winrm_transport=ntlm

# 大表架
[largeWatchStand]
# 表架6
192.168.41.29  ansible_ssh_user="admin" ansible_ssh_pass="dddddddd" ansible_ssh_port=5985 ansible_connection="winrm" ansible_winrm_server_cert_validation=ignore ansible_winrm_transport=ntlm
# 表架7
192.168.41.47  ansible_ssh_user="admin" ansible_ssh_pass="dddddddd" ansible_ssh_port=5985 ansible_connection="winrm" ansible_winrm_server_cert_validation=ignore ansible_winrm_transport=ntlm

查看主机清单内容

# 查看主机清单
$ sudo cat /etc/ansible/hosts

检查是否能够连通

# 查看是否ping通
$ ansible all -m win_ping

如果不能够连通,请检查,或者请查看我的踩坑记录是否有踩过坑。

4.1执行Ansible脚本

完成准备后,可以写个小例子进行测试验证

执行测试脚本

# 测试windows组是否连同
ansible windows -m win_ping
# 查看所有主机是否都可以连通
ansible all -m win_ping

连接成功:

image-20211026192826136

4.2使用常用模块

4.2.1创建文件夹

ansible windows -m win_file -a 'dest=C:/test state=directory'

4.2.2远程执行cmd 命令

# 远程执行cmd 命令
ansible windows  -m win_shell -a 'ipconfig'

4.2.3文件目录操作

# 删除文件
ansible windows  -m win_file -a 'dest=c:\test\hosts.txt state=absent'
# 删除目录
ansible windows  -m win_file -a 'dest=c:\test state=absent'
# 传输文件到windows
ansible windows -m win_copy -a 'src=/etc/hosts dest=c:\test\hosts.txt'

4.2.4重启

# 重启 
ansible windows  -m win_reboot
ansible windows  -m win_shell -a 'shutdown -r -t 0'

4.2.5创建用户

# 创建用户
ansible 192.168.11.149 -m win_user -a "name=user1 passwd=123456"

4.3编写playbook

5.踩坑记录

5.1离线安装python winrm模块

有网络的情况下安装命令: pip install pywinrm

下载第三方库,网址为: https://pypi.org/

离线安装的第三方库有:

pywinrm-0.4.2

ntlm-auth-1.5.0.tar.gz \ ntlm_auth-1.0.1-py2.py3-none-any.whl (建议使用)

requests_ntlm-1.1.0.tar.gz

xmltodict-0.12.0-py2.py3-none-any.whl

安装第三方库时候出现的坑:

1.Error in ntlm-auth setup command: Invalid environment marker: python_versions"2.7"

image-20211026181917740

解决方案:

使用下载的 ntlm_auth-1.0.1-py2.py3-none-any.whl 方式进行安装,这是因为我使用的是ntlm_auth-1.0.1-py2.py3-none-any.whl安装方式进行安装的。使用另外一种方式安装后,成功。

2.but you’ ll have requests 2.6.0 which is incompatible

image-20211026183300994

在安装的过程中出现这些提示信息,需要使用相应的安装包版本进行安装,版本太低或者太高都不行。

3.Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None))

WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError (' spip._vendor. ur11ib3. connection. HTTPSConnection object at 0x7f024a55c590x: Failed to establish a new connection: [ Errno 101] Network is unreachable',)': /simple/six/E

这个原因是因为在内网进行的安装,不能够连接到外部网络,所以会出现这个错误,所以可以进行使用 ntlm-auth-1.5.0.tar.gz 的方式安装第三方库,然后进行查看具体的信息,需要依赖于其他的什么的第三方库。

4.提示信息:不能找到相应的文件目录

尝试使用以下命令进行设置:

添加相应的 --target 信息

image-20211026184823265

5.2以太网设置

Error: 由于此计算机上的网络连接类型之一设置为公用,因此 WinRM 防火墙例外将不运行。 将网络连接类型更改为域或专用,然后再次尝试。

image-20211026141951983

打开以太网设置后

image-20211026142211572

将网络设置为专用后就可以了,重新执行相关命令。

image-20211026142132446

5.3连接不上被管理机器

1.“msg”: “plaintext: the specified credentials were rejected by the server”,

image-20211026182650964

# 编辑主机的配置文件,添加以下字段
ansible_winrm_transport=ntlm

2.'msg‘: "ssl: the specified credentials were rejected by the server"

image-20211026182855487

这个是因为在主机清单中缺少 ansible_ssh_port=5985 ,请仔细检查主机清单中的配置信息

3.连接超时

image-20211026183143492

这个可能用户名或者密码写错了。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-27 13:11:54  更:2021-10-27 13:12:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/27 13:10:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码