您好,有第n台服务器,您需要更改所有服务器上的root密码,以便每个服务器都是单独的。并将所有密码写入1个文件中,指示哪个密码属于哪个服务器,该文件必须是一个并且位于带有Ansiblom的机器上。
我面临的第一个问题是如何生成密码,最好使用 Ansible。在知识库中,我找到了这条线。
python -c "from passlib.hash import sha512_crypt; import getpass; print sha512_crypt.using(rounds=5000).hash(getpass.getpass())"
但它不起作用,发誓一个无效的参数:
Traceback (most recent call last):
File "<string>", line 1, in <module>
AttributeError: type object 'sha512_crypt' has no attribute 'using'
当然,您可以在服务器端生成密码,但随后所有的自动化都消失了。尽管如此,有必要从服务器“手中”拿走新密码。
如果你只需要一个文件,你将不得不发明一些东西。例如,生成一个带有单独任务的 csv 文件,然后使用csv-lookup。
开箱即用,Ansible 有一个密码查找插件,在您的情况下可以这样使用:
creds/<inventory_hostname>.pwd如果文件存在,则从文件中读取该表达式的值;如果文件不存在,则生成新密码并将其写入相应的文件。这样,
creds/文件夹中就会有带有主机名的单独文件。每个文件都有自己的主机密码。