模板任务:写入 root 拥有的目录

template task: write to root owned directory

我想将模板生成的文件复制到 /etc/init.d 文件夹。但是 template 任务似乎不支持 sudo 参数。 推荐的处理方法是什么?我应该将它复制到临时目录,然后使用 sudo 移动文件吗?

剧本任务如下所示。 Ansible 版本 1.8.2

   - name: copy init script
     template: src=template/optimus_api_service.sh dest=/etc/init.d/optimus-api mode=0755 force=yes owner=root group=root

我已经测试了以下剧本并且有效。

我的设置:

机器 vm 上的用户 vagrant 被允许使用 sudo 执行无密码命令。

我创建了一个简单的模板并使用以下剧本安装它:

---
- name: Test template
  hosts: vm
  gather_facts: no
  remote_user: vagrant

  vars:
    bla: blub                # some variable used in the template

  tasks:
    - name:  copy init script
      sudo: yes              # << you have to activate sudo
      sudo_user: root        # << and provide the user
      template: src=template/test.j2 dest=/opt/test mode=0755 force=yes owner=root group=root