问题描述
模板在/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
如果你问其他问题,请告诉我。