首页 > 解决方案 > 如何使用临时命令将模板 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以及如何使用临时命令启动 nginx?

标签: templatesnginxansibleadhocansible-template

解决方案


我从你的问题中了解到的是:

  • 您想将多个模板文件从 复制 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

如果你问别的,请告诉我。


推荐阅读