使用Ansible编译和安装简单的二进制文件

时间:2016-10-25 00:02:56

标签: compilation ansible

假设我有一个非常简单的程序magic_command.c,我希望将其编译为magic_command并安装在/usr/local/bin中。

我能想到的一个方法就是Ansible:

  • 在远程主机上创建临时目录
  • magic_command.cMakefile复制到临时目录
  • 运行make all以创建magic_command
  • 运行make install,即将magic_command复制到/usr/local/bin
  • 的目标

使用Ansible有更简单或更简洁的方法吗?

1 个答案:

答案 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