vmware horizon client安装失败_安装配置ansible管理vsphere

前言

在标准化的企业环境当中,批量操作几乎是无可避免的事情。在vmware vsphere的企业环境当中常规的批量操作手段主要以powercli为主,powercli几乎可以对vmware vsphere做任何批量操作极大地减少了管理员的工作量,但powercli只能针对vmware vsphere做批量操作,这远远是不够的所以本文主要是讲使用ansible来对vmware vsphere进行批量操作管理,实际上ansible对vsphere的支持并不少功能也比较完整,除了部分功能还没有相应模块支持以外,而且ansible有几千个模块可以支持非常多的系统及设备。例如:亚马逊云,Linux,windows,Cisco网络设备等等。如果熟悉ansible的朋友完全可以忽略我的笔记,因为ansible modules网站上有非常详细的指引。如果不熟悉的可以一步一步按照笔记去做也是没问题的,至于playbook部分也仅仅需要修改相关的参数也可以马上进行使用。本文是安装配置ansible管理vmware。

安装配置

1、CentOS用户,需要 配置EPEL

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

7a32552721c918b85e55686162c7784f.png

2、安装ansible

yum install ansible

e70e9ec441b4cf6068f32a136028cf19.png

3、安装python pip工具

yum -y install python-pip

6872806e26091880b730777733d2a644.png

4、通过pip工具安装pyvmomi(ansible管理vsphere主要依赖pyvmomi)

pip install pyvmomi

873052cdbba749ae6de555a5422e0b10.png

安装完成

编写测试playbook并开始执行调试

1、编写一个测试的playbook:

708202b9281f4079637d31e6ba7edebd.png

2、执行playbook并出现认证失败报错:

55e57babb41ae67cb090a51f2826316a.png

针对认证失败的解决办法

解决办法主要有两个:

1、在每个ansible的模块添加:validate_certs:  no忽略证书进行配置。

2、在ansible server上添加管理设备的自签名证书。

建议:本人在首次安装部署时使用了方法1,但并不可行并且在google找了相关解决办法也仍没有解决最后迫于无奈采用第二种方法,然而在写这篇笔记时使用方法1完全没有问题,个人建议在方法1无法成功的时候采用第二种方法

1、解决方法1操作:

在模块中添加:validate_certs: no,大部分vmware模块均有这个参数,如果多个一个playbook有多个模块建议都添加上

e3cf0146ea4a272390a4ba82ce8efb54.png

8ab139ed4e01a3d82f60e29c0f74798d.png

2、解决方法2操作:

在ansible server上添加管理设备的自签名证书。

2.1、登录vcsa页面下载相关证书

dfae2621d71e2f653459e3275b724405.png

2.2、导入到ansible server中并解压获得certs文件夹,进入文件夹后看到三个不同系统的证书如图所示:

9e40d5c894137a7e8fa3511ef4e1311a.png

2.3、进入lin目录,此目录为Linux的证书。并对证书做如下操作:

将证书复制到/etc/pki/ca-trust/source/anchors/目录下

cp e65bea3e.0/etc/pki/ca-trust/source/anchors/

cp e65bea3e.r1/etc/pki/ca-trust/source/anchors/

创建证书软链接

ln -s/etc/pki/ca-trust/source/anchors/e65bea3e.0 /etc/ssl/certs/e65bea3e.0

ln -s/etc/pki/ca-trust/source/anchors/e65bea3e.r1 /etc/ssl/certs/e65bea3e.r1

2.4、运行update-ca-trust,更新系统的证书

update-ca-trust

660e733eb8c7262f5f4d78d859f590fd.png

6bb684bab952a9301512211f8b9c7f2b.png

Playbook中未添加validate_certs:no

f30c56a1c7c77f8763cb25b5f9351ad2.png

执行结果

8ab139ed4e01a3d82f60e29c0f74798d.png

参考链接:

https://cloud.tencent.com/developer/article/1106918(这位大神遇到了和我一样的第一个添加validate_certs: no未生效的情况)

https://docs.ansible.com/ansible/latest/scenario_guides/vmware_scenarios/vmware_requirements.html

https://www.jianshu.com/p/60332f71a89f