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:
Martin Krizek 2017-09-14 17:13:43 +02:00 committed by jctanner
parent 9d5671db76
commit dc5f83c09b
4 changed files with 276 additions and 81 deletions

View 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"

View file

@ -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"

View 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"

View 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"