ansible - 使用 Ansible 更新单个 vhost 文件
问题描述
我有以下文件:roles/homepage/templates/vhost_443.conf.j2
<VirtualHost *:443>
ServerName {{ vhost_name }}
{% if vhost_aliases is defined %}
{% for vhost_alias in vhost_aliases %}
ServerAlias {{ vhost_alias }}
{% endfor %}
{% endif %}
ServerAdmin webmaster@extension.org
DocumentRoot {{ vhost_document_root }}
ErrorLog {{ vhost_log_dir }}/error.log
CustomLog {{ vhost_log_dir }}/access.log combined
LogLevel info ssl:warn
# LogLevel alert rewrite:t
...
该文件引用于roles/homepage/tasks/main.yml
...
- name: create ssl vhost
template:
src: vhost_443.conf.j2
dest: "/etc/apache2/sites-available/{{ vhost_name }}_443.conf"
notify: restart apache
tags:
- vhostconfig
...
有没有办法只运行这部分(任务?)roles/homepage/tasks/main.yml
所以我只更新服务器上的 vhost_443.conf 文件而不运行 main.yml 中的所有其他任务,或者我应该创建一个任务来更新这个文件?
我正在考虑运行:
ansible-playbook roles/homepage/tasks/main.yml
但这将运行 main.yml 中的所有其他命令。
解决方案
我最终采用的解决方案是将标签添加update_vhost
到我想要运行的特定任务中roles/homepage/tasks/main.yml
。所以在
...
- name: create ssl vhost
template:
src: vhost_443.conf.j2
dest: "/etc/apache2/sites-available/{{ vhost_name }}_443.conf"
notify: restart apache
tags: ['vhostconfig', 'update_vhost']
...
现在,当我想运行该特定任务时,我ansible-playbook playbooks/webapps/homepage.yml --tags "update_vhost"
只运行该任务。
推荐阅读
- modelica - 在不影响状态选择的情况下集成 Modelica 变量
- python-3.x - 将数据框中的日期时间列转换为分钟
- aws-cloudformation-custom-resource - 用户获取存储到 Cloud Formation 中 Secrets Manager 的访问密钥和密钥
- python - 收集时间戳列
- heroku - Strapi:为什么每次我更新strapi-app并将其部署在heroku上时数据都会被删除
- c++ - operator== 的隐式类型转换
- go - 如何在 golang 中模拟 go-plugin 函数?
- javascript - 动态更改默认选择的选项
- reactjs - 在 React 中基于 2 个 JSON 文件动态填充下拉列表
- java - 我试图复制在新选项卡中打开但复制旧选项卡 url 的 URL。java - 如何复制新标签页url java selenium?