在所有这些服务器上安装新的CentOS后,如何更改多服务器上的默认root密码(root密码是通过CentOS安装提供的)。
我可以使用ansible工具来完成此问题,但它无法使用首次root密码。
我怎样才能达到目的。
更新: 我不想登录每台服务器来更改密码。我想通过ssh从远程服务器更改root密码,并且至少可以完成。
解决方案:
使用ansible + below命令是更改多服务器上的root pass的最简单方法。
echo "newpass" | passwd root --stdin
答案 0 :(得分:1)
您可以尝试使用Expect自动执行此操作。我过去曾使用Expect自动登录路由器来执行操作。期望脚本有点像宏。 您可以使用
安装Expectsudo apt-get install expect
或
yum install expect
您创建一个expect脚本并为您的每个服务器运行它(可能通过shell脚本)。一个基本的Expect脚本示例,只是为了让您了解它的作用:
spawn ssh -l admin 123.111.123.11
match_max 100000
expect -ex "This system is for authorized use only.Password:"
send -- "topsecret\r"
expect -ex "Terminal type? \[xterm\]"
send -- "\r"
send -- "\n"
expect -ex "MyServer\[admin\]#"
send -- "/usr/bin/uptime \r\n"
expect -ex "MyServe\[admin\]#"
显然你需要改变脚本应该'期望'到你的centos机器的实际输出,因为上面的'预期'的东西是路由器。 下面的链接是一个更复杂的脚本,用于设置可能对您有帮助的密码: http://surniaulula.com/2012/10/14/change-passwords-with-ssh-and-expect/
答案 1 :(得分:0)
要在完成安装后更改root密码,请使用Root Password Tool。 在shell提示符下键入system-config-rootpassword命令以启动Root Password Tool。如果您不是root用户,则会提示您输入root密码。