我试图通过ansible运行needrestart工具来检查过时库的进程.当我使用来自ansible的命令或shell模块运行needstart时,它说我需要重新启动我的ssh守护进程.当我手动运行needrestart时,它表示没有过时库的进程.
当我重新启动ssh守护进程时,它没有任何区别.但重新启动远程服务器后,ssh守护程序未列为服务,我应该重新启动.
所以我真的不明白来自ansible和我的手动ssh连接的ssh连接之间的区别导致了needrestart的不同行为.
任何帮助,将不胜感激!
先谢谢你,最好的问候
Max
我的本地机器
$ python -V
Python 2.7.13
$ ansible --version
ansible 2.2.0.0
$ cat ansible.cfg
[defaults]
inventory = hosts
ask_vault_pass = True
retry_files_enabled = False
Run Code Online (Sandbox Code Playgroud)
我使用ssh代理连接到服务器:
ansible_ssh_common_args='-o ProxyCommand="ssh -W %h:%p -q user@jumphost.example.com"'
Run Code Online (Sandbox Code Playgroud)
远程服务器
$ cat /etc/debian_version
8.6
$ python -V
Python 2.7.9
Run Code Online (Sandbox Code Playgroud)
使用ansible
$ ansible example.com -m command -a 'needrestart -b -l -r l'
Vault password:
example.com | SUCCESS | rc=0 >>
NEEDRESTART-VER: 1.2
NEEDRESTART-SVC: ssh.service
$ ansible example.com -m shell …Run Code Online (Sandbox Code Playgroud) ansible ×1