假设我有一个非常简单的程序magic_command.c
,我希望将其编译为magic_command
并安装在/usr/local/bin
中。
我能想到的一个方法就是Ansible:
magic_command.c
和Makefile
复制到临时目录make all
以创建magic_command
make install
,即将magic_command
复制到/usr/local/bin
使用Ansible有更简单或更简洁的方法吗?
答案 0 :(得分:1)
我最终使用的方法与原始问题中描述的方法非常相似:
- name: Create temporary directory for compilation
command: mktemp -d /tmp/magic_command.XXXXXXXXX
register: magic_command_temp_dir
- name: Copy source and makefile
copy: src={{ item }} dest={{ magic_command_temp_dir.stdout }}
with_items:
- magic_command.c
- Makefile
- name: Compile executable
shell: make chdir={{ magic_command_temp_dir.stdout }}
- name: Install executable
copy: remote_src=True src={{ magic_command_temp_dir.stdout }}/magic_command dest=/usr/local/bin/magic_command mode=0755 owner=root group=root
- name: Remove temporary directory
file: name={{ magic_command_temp_dir.stdout }} state=absent