小编Max*_*Max的帖子

needrestart在由ansible而不是手动ssh连接运行时表现不同

我试图通过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

5
推荐指数
1
解决办法
297
查看次数

标签 统计

ansible ×1