我需要使用shell中的内容构建端口:
cd / usr / ports / www / nginx /&& make HTTP_GEOIP = YES BATCH = yes
我可以找到any文档,如何使用ansible module portinstall =(
答案 0 :(得分:1)
我建议保留自定义构建选项的本地文件,并在portinstall之前将其复制到主机。
- name: Copy customized build options
copy: src="{{role_path}}/files/nginx-build-options"
dest="/var/db/ports/www_nginx/options"
- name: Install nginx from the port
portinstall: name=nginx state=present
答案 1 :(得分:1)
我想补充一下。不幸的是,建议的解决方法并不是幂等的。
- name: Build Nginx with geoip.
command: make HTTP_GEOIP=YES BATCH=yes
args:
chdir: /usr/ports/www/nginx/
这意味着,它将始终报告为“已更改”。
答案 2 :(得分:0)
似乎此操作未在port_install module中实现。该模块是ansible-module-extra repository的一部分,这意味着:
这些模块目前随Ansible一起提供,但将来可能会单独发货。他们也主要由社区维护。非核心模块仍然可以完全使用,但对于问题和拉取请求可能会收到略低的响应率。
由于BSD(可悲)并不是很受欢迎,因此某人实施该功能的可能性不是很高。
但是可以通过使用command
模块来解决这些限制:
- name: Build Nginx with geoip.
command: make HTTP_GEOIP=YES BATCH=yes
args:
chdir: /usr/ports/www/nginx/
我建议编写另一个任务来检查系统上安装的端口的状态/版本,并为任务添加when
子句,否则Ansible将在每次运行时重建端口。