如果我更改了配置nginx,我会尝试在我的ansible剧本中重新启动。配置复制是通过模板完成的。
- name: update nginx.conf
template: src=../templates/nginx_global_conf.conf.j2 dest=/etc/nginx/nginx.conf
sudo: yes
register: nginx_conf
- name: restart nginx if needed
shell: service nginx restart
when: nginx_conf.changed
Run Code Online (Sandbox Code Playgroud)
即使我得到:
TASK: [webapp | update nginx.conf] ********************************************
changed: [IPADDRESS]
Run Code Online (Sandbox Code Playgroud)
我总是得到:
TASK: [webapp | restart nginx if needed] **************************************
skipping: [IPADDRESS]
Run Code Online (Sandbox Code Playgroud)
也尝试过代替外壳:
action: service name=nginx state=restarted enabled=yes
Run Code Online (Sandbox Code Playgroud)
这不是问题。没有发出信号的寄存器是...
我似乎无法在任何地方找到答案。到目前为止,我已经发现我需要添加(取消注释)
[multilib]
Include = /etc/pacman.d/mirrorlist
Run Code Online (Sandbox Code Playgroud)
在“/etc/pacman.conf”上然后运行:
sudo pacman-key --init
Run Code Online (Sandbox Code Playgroud)
当我运行时:
sudo pacman -S
Run Code Online (Sandbox Code Playgroud)
我得到:
warning: database file for 'multilib' does not exist
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
我正在使用 ansible 部署到服务器。
即使已经安装了正确的版本,apt 阶段(它是 Ubuntu)也需要很长时间才能运行(我猜它只是运行并看到不需要安装任何东西)
示例命令:
- name: set up apt packages
action: apt pkg=nginx=1.4.6-1ubuntu3.3 state=present update_cache=yes
Run Code Online (Sandbox Code Playgroud)
(我有很多,所以需要相当长的时间)
有没有办法 ansible 可以“找出”已经安装了 pkg 并更快地运行/跳过此命令?