带Ansible的Shell命令

时间:2018-10-29 16:28:35

标签: cron ansible

我想使用Ansible来执行几个命令。就我而言,我想创建一个文件系统。这是我的代码:

- name: Create file system
   raw: |
   mkdir -p {{ out }} {{ scripts }} {{ sql }}
   chown -R postgres:postgres {{ root_dir }}
   lvcreate -n lv_test -L 5G data_vg
   mkfs.ext4 {{ fs }}
   mount {{ fs }} {{ home }}
   when: (target_app  == "app")

我想通过使用root用户来执行所有这些操作。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以仅使用类似于以下内容的shell模块:

- name: set a fact
  hosts: localhost
  tasks:
  - name: add users
    become: yes
    become_user: root
    shell: |
        mkdir -p /tmp/blah/moreblah;
        chown -R root:root /tmp/blah/moreblah

话虽这么说,有些模块file可以为您完成一些工作。例如

# create a directory if it doesn't exist
- file:
    path: /etc/some_directory
    state: directory
    group: root
    owner: root
    mode: 0755
    recurse: yes

通常,如果您使用Shell执行日常的UNIX命令,则可能做错了。

参考

https://docs.ansible.com/ansible/latest/modules/file_module.html https://docs.ansible.com/ansible/latest/modules/shell_module.html