我有一个安装手册,它采用新安装的 linux 实例,以默认用户身份登录(我们将调用 user1),创建另一个用户(我们将调用 user2),然后禁用 user1。因为 user1 只能在这组任务执行之前访问实例,所以这些任务位于一个特殊的 playbook 中,我们必须记住要在新实例上运行。之后,由于 user1 不再存在,所有的常用任务都由 user2 运行。
我想将 setup 和 common playbook 结合起来,这样我们就不必再手动运行 setup playbook 了。我尝试创建一个任务以查看实例上存在哪个用户,以通过尝试以 user1 身份通过 SSH 登录来使原始设置任务成为条件。问题是,如果我为任一用户尝试 SSH 登录,ansible 将退出并出现 FATAL 错误,因为它无法登录:新实例上尚不存在 user2,或者在设置 playbook 执行后 user1 已被禁用。
我相信通过 SSH 测试登录是从外部确定实例处于何种状态的唯一方法。有没有办法测试 SSH 登录而不会出现致命错误,然后根据结果有条件地执行任务?