我最终是如何开发VMware Workstation Pro Ansible模块的

2020-05-03 21:09:55

作为一名IT专业人士和信息安全爱好者,虚拟化即使不是构成我的工作流的最重要的软件,也是最重要的软件之一。

想要在不破坏实际设置的情况下尝试尖端软件或操作系统更新吗?维图化。

需要复制问题吗?虚拟化整个设置。(额外的好处:在VM上复制现实生活中的设置,这样您就可以用一千个太阳的力量来测试它。)。

如果你担心自己的数据和系统安全,你可能会遇到其他操作系统,比如Qubes OS。这一开始可能会造成不稳定,但归根结底,这让你改变了对一些日常任务的看法。

长话短说,我经常使用虚拟化。作为r/HomeLab的一名成员,我的家庭实验室设置是你能想象到的最经典的。一些计算机、交换机、防火墙和运行ESXi的Frankenstein服务器,该服务器托管了我所有的实验室和崩溃测试环境。

生活发生了变化,工作流程发生了变化,设置也是强制性的规范。那又怎么样?我需要把我的旧虚拟实验室改造成笔记本电脑大小的实验室。

我需要能够走出家门工作,这样才能把它装进背包里。

互联网连接不会是恒定的,所以忘了所有的远程访问吧,没有家庭实验室的VPS,也没有租用的专用服务器。

为什么?嗯,我不会说得太详细。我会让你把我想象成某种秘密特工,就像技术人员詹姆斯·邦德……。或者只是另一个怪异的书呆子喜欢怪胎。

因此,我改用VMware Workstation Pro作为虚拟机管理程序。为什么?嗯,这需要另一篇博客文章,所以我会把它留到另一天。

在笔记本电脑上运行繁重的虚拟化实验室(来自经典实验室)的主要问题之一是,您的计算机或主机并不总是处于开机状态!

告别你喜欢的裙带关系工作、日程安排的任务等等。因为,即使我们不是定期运行它们,而是在引导或登录时设置它们,谁知道呢?也许我登录是为了检索文件或其他东西,但没有时间进行升级。

从现在开始,这将是手动启动,但不会没有最低限度的优化,这就是Ansible。

将我的脚本转换成Ansible剧本,使我可以随时升级多个系统,而无需手动对每个系统进行升级。

那么,问题是什么呢?嗯,就像我说的,所有的虚拟机都没有全天候运行,所以这里仍然需要手动操作:逐个启动虚拟机,等待它们全部启动并运行,然后启动我的升级攻略。

我想让Ansible能够启动和停止我的VM,这将允许我创建以下攻略:

因此,首先我一直在寻找唤醒兰魔术包,但没有运气在这里,没有设法使它工作,我所有的Google-Fu尝试导致10年前的线程或关于ESXi的话题。

我考虑在我的新设置中使用ESXi。事实上,使用ESXi与vCenter配合使用或不与vCenter配合使用本可以帮助我实现各种自动化目的,但它也有很多缺点:

Workstation Pro可以做到这一点,ESXi可以做到这一点。这可以通过在ESXi上使用vCenter来解决。不要误会我的意思,我喜欢vCenter,它是ESXi之上的一个令人惊叹的补充(我今天太喜欢VMware了),但是软件有目的和用例。

这不是完全安装ESXi&;vCenter就可以解决的问题。我甚至没有提到vCenter的RAM和CPU需求。

笔记本电脑启动、启动Workstation Pro、ESXi启动、vCenter启动、使用从来自vCenter的共享虚拟机检索到的信息刷新Workstation Pro GUI、虚拟机启动。

这种设置是不可持续的。就像我前面说的,想象一下这一切仅仅是为了快速测试或查找VM!

那么,回到主题上来,我们说到哪里了?是的,Ansible,Workstation Pro&;我无法让WOL与虚拟机一起工作。

我的Github-Fu&;Ansible-Galaxy-Fu可能没有切中要害,但到目前为止还没有关于这个主题的项目。

这就是我决定成为首席执行官的时候,似乎没有人想要也不需要它,所以我会建造它。

虽然我只需要与电源状态相关的请求,但我决定全力以赴,其他的也要做。这可以实现多个目的:

也许我将来会需要其中的一些,同时与Ansible&;我的新实验室相处得更融洽。

该代码仍然是黑客的,正在与Yandere Simulator的竞争,但它是有效的。我现在可以从我的行动手册启动虚拟机了!

还有工作要做,因为我仍然在学习如何与Ansible的模块和系统交互,因此,除了代码折射器和优化整个";返回的信息";主题是一个很大的WIP。

另外,我想让API的使用率更高一点…。人类证据?实际上,没有什么可以阻止您断开或删除运行Ansible的虚拟机的网络适配器。

变量定义也是如此,几乎所有的虚拟机请求都使用虚拟机ID,这是我们不容易知道的,也不容易记住