我想使用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
用户来执行所有这些操作。有什么想法吗?
答案 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