Add sudo/su become_methods for become tests (#30266)
* Add sudo/su become_methods for become tests * Fix test on osx
This commit is contained in:
parent
9d5671db76
commit
dc5f83c09b
4 changed files with 276 additions and 81 deletions
81
test/integration/targets/become/tasks/default.yml
Normal file
81
test/integration/targets/become/tasks/default.yml
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
- name: Create test user (become_method=default)
|
||||||
|
become: True
|
||||||
|
become_user: root
|
||||||
|
user:
|
||||||
|
name: "{{ become_test_user }}"
|
||||||
|
|
||||||
|
- name: test becoming user (become_method=default)
|
||||||
|
shell: whoami
|
||||||
|
become: True
|
||||||
|
become_user: "{{ become_test_user }}"
|
||||||
|
register: results
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- "results.stdout == '{{ become_test_user }}'"
|
||||||
|
|
||||||
|
- name: tilde expansion honors become in file (become_method=default)
|
||||||
|
become: True
|
||||||
|
become_user: "{{ become_test_user }}"
|
||||||
|
file:
|
||||||
|
path: "~/foo.txt"
|
||||||
|
state: touch
|
||||||
|
|
||||||
|
- name: check that the path in the user's home dir was created (become_method=default)
|
||||||
|
become: True
|
||||||
|
become_user: "{{ become_test_user }}"
|
||||||
|
stat:
|
||||||
|
path: "~{{ become_test_user }}/foo.txt"
|
||||||
|
register: results
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- "results.stat.exists == True"
|
||||||
|
- "results.stat.path|dirname|basename == '{{ become_test_user }}'"
|
||||||
|
|
||||||
|
- name: tilde expansion honors become in template (become_method=default)
|
||||||
|
become: True
|
||||||
|
become_user: "{{ become_test_user }}"
|
||||||
|
template:
|
||||||
|
src: "bar.j2"
|
||||||
|
dest: "~/bar.txt"
|
||||||
|
|
||||||
|
- name: check that the path in the user's home dir was created (become_method=default)
|
||||||
|
become: True
|
||||||
|
become_user: "{{ become_test_user }}"
|
||||||
|
stat:
|
||||||
|
path: "~{{ become_test_user }}/bar.txt"
|
||||||
|
register: results
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- "results.stat.exists == True"
|
||||||
|
- "results.stat.path|dirname|basename == '{{ become_test_user }}'"
|
||||||
|
|
||||||
|
- name: tilde expansion honors become in copy (become_method=default)
|
||||||
|
become: True
|
||||||
|
become_user: "{{ become_test_user }}"
|
||||||
|
copy:
|
||||||
|
src: baz.txt
|
||||||
|
dest: "~/baz.txt"
|
||||||
|
|
||||||
|
- name: check that the path in the user's home dir was created (become_method=default)
|
||||||
|
become: True
|
||||||
|
become_user: "{{ become_test_user }}"
|
||||||
|
stat:
|
||||||
|
path: "~{{ become_test_user }}/baz.txt"
|
||||||
|
register: results
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- "results.stat.exists == True"
|
||||||
|
- "results.stat.path|dirname|basename == '{{ become_test_user }}'"
|
||||||
|
|
||||||
|
- name: Remove test user and their home dir (become_method=default)
|
||||||
|
become: True
|
||||||
|
become_user: root
|
||||||
|
user:
|
||||||
|
name: "{{ become_test_user }}"
|
||||||
|
state: "absent"
|
||||||
|
remove: "yes"
|
||||||
|
force: "yes"
|
|
@ -1,83 +1,5 @@
|
||||||
- include_vars: default.yml
|
- include_vars: default.yml
|
||||||
|
|
||||||
- name: Create test user
|
- include: default.yml
|
||||||
become: True
|
- include: sudo.yml
|
||||||
become_user: root
|
- include: su.yml
|
||||||
user:
|
|
||||||
name: "{{ become_test_user }}"
|
|
||||||
|
|
||||||
- name: test becoming user
|
|
||||||
shell: whoami
|
|
||||||
become: True
|
|
||||||
become_user: "{{ become_test_user }}"
|
|
||||||
register: results
|
|
||||||
|
|
||||||
- assert:
|
|
||||||
that:
|
|
||||||
- "results.stdout == '{{ become_test_user }}'"
|
|
||||||
|
|
||||||
- name: tilde expansion honors become in file
|
|
||||||
become: True
|
|
||||||
become_user: "{{ become_test_user }}"
|
|
||||||
file:
|
|
||||||
path: "~/foo.txt"
|
|
||||||
state: touch
|
|
||||||
|
|
||||||
- name: check that the path in the user's home dir was created
|
|
||||||
become: True
|
|
||||||
become_user: "{{ become_test_user }}"
|
|
||||||
stat:
|
|
||||||
path: "~{{ become_test_user }}/foo.txt"
|
|
||||||
register: results
|
|
||||||
|
|
||||||
- assert:
|
|
||||||
that:
|
|
||||||
- "results.stat.exists == True"
|
|
||||||
- "results.stat.path|dirname|basename == '{{ become_test_user }}'"
|
|
||||||
|
|
||||||
- name: tilde expansion honors become in template
|
|
||||||
become: True
|
|
||||||
become_user: "{{ become_test_user }}"
|
|
||||||
template:
|
|
||||||
src: "bar.j2"
|
|
||||||
dest: "~/bar.txt"
|
|
||||||
|
|
||||||
- name: check that the path in the user's home dir was created
|
|
||||||
become: True
|
|
||||||
become_user: "{{ become_test_user }}"
|
|
||||||
stat:
|
|
||||||
path: "~{{ become_test_user }}/bar.txt"
|
|
||||||
register: results
|
|
||||||
|
|
||||||
- assert:
|
|
||||||
that:
|
|
||||||
- "results.stat.exists == True"
|
|
||||||
- "results.stat.path|dirname|basename == '{{ become_test_user }}'"
|
|
||||||
|
|
||||||
- name: tilde expansion honors become in copy
|
|
||||||
become: True
|
|
||||||
become_user: "{{ become_test_user }}"
|
|
||||||
copy:
|
|
||||||
src: baz.txt
|
|
||||||
dest: "~/baz.txt"
|
|
||||||
|
|
||||||
- name: check that the path in the user's home dir was created
|
|
||||||
become: True
|
|
||||||
become_user: "{{ become_test_user }}"
|
|
||||||
stat:
|
|
||||||
path: "~{{ become_test_user }}/baz.txt"
|
|
||||||
register: results
|
|
||||||
|
|
||||||
- assert:
|
|
||||||
that:
|
|
||||||
- "results.stat.exists == True"
|
|
||||||
- "results.stat.path|dirname|basename == '{{ become_test_user }}'"
|
|
||||||
|
|
||||||
- name: Remove test user and their home dir
|
|
||||||
become: True
|
|
||||||
become_user: root
|
|
||||||
user:
|
|
||||||
name: "{{ become_test_user }}"
|
|
||||||
state: "absent"
|
|
||||||
remove: "yes"
|
|
||||||
force: "yes"
|
|
||||||
|
|
102
test/integration/targets/become/tasks/su.yml
Normal file
102
test/integration/targets/become/tasks/su.yml
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
- name: Create test user (become_method=su)
|
||||||
|
become: True
|
||||||
|
become_user: root
|
||||||
|
become_method: su
|
||||||
|
user:
|
||||||
|
name: "{{ become_test_user }}"
|
||||||
|
when: ansible_distribution != "MacOSX"
|
||||||
|
|
||||||
|
|
||||||
|
- name: Create test user (become_method=su)
|
||||||
|
become: True
|
||||||
|
become_user: root
|
||||||
|
become_method: su
|
||||||
|
user:
|
||||||
|
name: "{{ become_test_user }}"
|
||||||
|
# explicitly set user shell since the default shell on OS X is /usr/bin/false
|
||||||
|
shell: /bin/bash
|
||||||
|
when: ansible_distribution == "MacOSX"
|
||||||
|
|
||||||
|
- name: test becoming user (become_method=su)
|
||||||
|
shell: whoami
|
||||||
|
become: True
|
||||||
|
become_user: "{{ become_test_user }}"
|
||||||
|
become_method: su
|
||||||
|
register: results
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- "results.stdout == '{{ become_test_user }}'"
|
||||||
|
|
||||||
|
- name: tilde expansion honors become in file (become_method=su)
|
||||||
|
become: True
|
||||||
|
become_user: "{{ become_test_user }}"
|
||||||
|
become_method: su
|
||||||
|
file:
|
||||||
|
path: "~/foo.txt"
|
||||||
|
state: touch
|
||||||
|
|
||||||
|
- name: check that the path in the user's home dir was created (become_method=su)
|
||||||
|
become: True
|
||||||
|
become_user: "{{ become_test_user }}"
|
||||||
|
become_method: su
|
||||||
|
stat:
|
||||||
|
path: "~{{ become_test_user }}/foo.txt"
|
||||||
|
register: results
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- "results.stat.exists == True"
|
||||||
|
- "results.stat.path|dirname|basename == '{{ become_test_user }}'"
|
||||||
|
|
||||||
|
- name: tilde expansion honors become in template (become_method=su)
|
||||||
|
become: True
|
||||||
|
become_user: "{{ become_test_user }}"
|
||||||
|
become_method: su
|
||||||
|
template:
|
||||||
|
src: "bar.j2"
|
||||||
|
dest: "~/bar.txt"
|
||||||
|
|
||||||
|
- name: check that the path in the user's home dir was created (become_method=su)
|
||||||
|
become: True
|
||||||
|
become_user: "{{ become_test_user }}"
|
||||||
|
become_method: su
|
||||||
|
stat:
|
||||||
|
path: "~{{ become_test_user }}/bar.txt"
|
||||||
|
register: results
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- "results.stat.exists == True"
|
||||||
|
- "results.stat.path|dirname|basename == '{{ become_test_user }}'"
|
||||||
|
|
||||||
|
- name: tilde expansion honors become in copy (become_method=su)
|
||||||
|
become: True
|
||||||
|
become_user: "{{ become_test_user }}"
|
||||||
|
become_method: su
|
||||||
|
copy:
|
||||||
|
src: baz.txt
|
||||||
|
dest: "~/baz.txt"
|
||||||
|
|
||||||
|
- name: check that the path in the user's home dir was created (become_method=su)
|
||||||
|
become: True
|
||||||
|
become_user: "{{ become_test_user }}"
|
||||||
|
become_method: su
|
||||||
|
stat:
|
||||||
|
path: "~{{ become_test_user }}/baz.txt"
|
||||||
|
register: results
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- "results.stat.exists == True"
|
||||||
|
- "results.stat.path|dirname|basename == '{{ become_test_user }}'"
|
||||||
|
|
||||||
|
- name: Remove test user and their home dir (become_method=su)
|
||||||
|
become: True
|
||||||
|
become_user: root
|
||||||
|
become_method: su
|
||||||
|
user:
|
||||||
|
name: "{{ become_test_user }}"
|
||||||
|
state: "absent"
|
||||||
|
remove: "yes"
|
||||||
|
force: "yes"
|
90
test/integration/targets/become/tasks/sudo.yml
Normal file
90
test/integration/targets/become/tasks/sudo.yml
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
- name: Create test user (become_method=sudo)
|
||||||
|
become: True
|
||||||
|
become_user: root
|
||||||
|
become_method: sudo
|
||||||
|
user:
|
||||||
|
name: "{{ become_test_user }}"
|
||||||
|
|
||||||
|
- name: test becoming user (become_method=sudo)
|
||||||
|
shell: whoami
|
||||||
|
become: True
|
||||||
|
become_user: "{{ become_test_user }}"
|
||||||
|
become_method: sudo
|
||||||
|
register: results
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- "results.stdout == '{{ become_test_user }}'"
|
||||||
|
|
||||||
|
- name: tilde expansion honors become in file (become_method=sudo)
|
||||||
|
become: True
|
||||||
|
become_user: "{{ become_test_user }}"
|
||||||
|
become_method: sudo
|
||||||
|
file:
|
||||||
|
path: "~/foo.txt"
|
||||||
|
state: touch
|
||||||
|
|
||||||
|
- name: check that the path in the user's home dir was created (become_method=sudo)
|
||||||
|
become: True
|
||||||
|
become_user: "{{ become_test_user }}"
|
||||||
|
become_method: sudo
|
||||||
|
stat:
|
||||||
|
path: "~{{ become_test_user }}/foo.txt"
|
||||||
|
register: results
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- "results.stat.exists == True"
|
||||||
|
- "results.stat.path|dirname|basename == '{{ become_test_user }}'"
|
||||||
|
|
||||||
|
- name: tilde expansion honors become in template (become_method=sudo)
|
||||||
|
become: True
|
||||||
|
become_user: "{{ become_test_user }}"
|
||||||
|
become_method: sudo
|
||||||
|
template:
|
||||||
|
src: "bar.j2"
|
||||||
|
dest: "~/bar.txt"
|
||||||
|
|
||||||
|
- name: check that the path in the user's home dir was created (become_method=sudo)
|
||||||
|
become: True
|
||||||
|
become_user: "{{ become_test_user }}"
|
||||||
|
become_method: sudo
|
||||||
|
stat:
|
||||||
|
path: "~{{ become_test_user }}/bar.txt"
|
||||||
|
register: results
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- "results.stat.exists == True"
|
||||||
|
- "results.stat.path|dirname|basename == '{{ become_test_user }}'"
|
||||||
|
|
||||||
|
- name: tilde expansion honors become in copy (become_method=sudo)
|
||||||
|
become: True
|
||||||
|
become_user: "{{ become_test_user }}"
|
||||||
|
become_method: sudo
|
||||||
|
copy:
|
||||||
|
src: baz.txt
|
||||||
|
dest: "~/baz.txt"
|
||||||
|
|
||||||
|
- name: check that the path in the user's home dir was created (become_method=sudo)
|
||||||
|
become: True
|
||||||
|
become_user: "{{ become_test_user }}"
|
||||||
|
become_method: sudo
|
||||||
|
stat:
|
||||||
|
path: "~{{ become_test_user }}/baz.txt"
|
||||||
|
register: results
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- "results.stat.exists == True"
|
||||||
|
- "results.stat.path|dirname|basename == '{{ become_test_user }}'"
|
||||||
|
|
||||||
|
- name: Remove test user and their home dir (become_method=sudo)
|
||||||
|
become: True
|
||||||
|
become_user: root
|
||||||
|
become_method: sudo
|
||||||
|
user:
|
||||||
|
name: "{{ become_test_user }}"
|
||||||
|
state: "absent"
|
||||||
|
remove: "yes"
|
||||||
|
force: "yes"
|
Loading…
Reference in a new issue