如何使用 adhoc 命令将模板 sites_enabled.j2 复制到 /etc/nginx/sites-enabled/default 中 & 如何使用shell启动nginx?

问题描述

模板在/etc/Nginx/sites-enabled中被正常复制

运行此命令时:ansible localhost -b -m copy -a "src=/abc/efg/ngs/templates/sites-enabled.j2 dest=/etc/Nginx/sites-enabled"

文件被复制。

:/etc/Nginx/sites-enabled$ ls 给出输出default & sites-enabled.j2

如何将/ngs中提供的模板复制到/etc/Nginx/sites-enabled/default以及如何使用adhoc命令启动Nginx

解决方法

我从你的问题中了解到:

  • 您想从 src = "/abc/efg/ngs/"dest = "/etc/nginx/sites-enabled/default"

  • 你想重启 Nginx。

要使用 Adhoc 命令实现此目的:

  • 复制文件:ansible localhost -b -m copy -a "src=/abc/efg/ngs/templates dest=/etc/nginx/sites-enabled/default/

  • 使用命令模块启动 NGINX:ansible localhost -m command -a "systemctl start nginx"

  • 使用外壳模块启动 NGINX:ansible localhost -m shell -a "systemctl start nginx"

参考临时命令:https://docs.ansible.com/ansible/latest/user_guide/intro_adhoc.html

要使用 playbook 命令实现此目的:

- name: Copying files from source to destination
  copy:
    src: /abc/efg/ngs/templates
    dest: /etc/nginx/sites-enabled/default/
    owner: foo
    group: foo
    mode: 0644
- name: Starting nginx
  command: systemctl start nginx

参考:https://docs.ansible.com/ansible/2.4/copy_module.html

参考:https://docs.ansible.com/ansible/latest/collections/ansible/builtin/command_module.html

但我建议如果您了解处理程序,因为当您只想在发生更改时重新启动/重新加载任何服务时,它们对执行此类任务非常有帮助。

参考:https://docs.ansible.com/ansible/latest/user_guide/playbooks_handlers.html

如果你问其他问题,请告诉我。