I’m not trying to re-invent the “replace” module that Ansible has.
I’m trying to write a (my FIRST) custom module to encapsulate the repetitive Linux source build process, namely,
- run ./configure $CONF_OPTS
- run make
- run make $TARGETS
However, i have an outlying case where I have to modify Makefile (ugh) that ./configure produces (not my idea), so my steps are now
- run ./configure $CONF_OPTS
- modify Makefile
- run make
- run make $TARGETS
If I was writing above steps using generic Ansible modules, I’d of course use the replace module, like so, correct? This will change all the instances of “/usr/local” into “/usr/my/local” and “/usr/perl” into “/usr/my/perl” in my Makefile
`
- name: Update Makefile (ugh)
replace:
dest: “/path_to/Makefile”
regexp: “{{item.old_str}}”
replace: “{{item.new_str}}”
with_items: - {old_str: “/usr/local”, new_str: “/usr/my/local”}
- {old_str: “/local/perl”, new_str: “/usr/my/perl”}
`
I want my module call to look like this. Or is there a better way to represent the “modify_regex” parameters?
`
- name: Run configure, make, and make targets
config_make_targets:
path: /path_to_source
modify_file: “Makefile”
modify_regex: [
{old_str: “/usr/local”, new_str: “/usr/my/local”},
{old_str: “/local/perl”, new_str: “/usr/my/perl”}
]
`
Thanks!