Skip to content

Commit ff952b5

Browse files
committed
Add install method (like pip)
1 parent 4b6f4a7 commit ff952b5

File tree

13 files changed

+91
-51
lines changed

13 files changed

+91
-51
lines changed

.github/workflows/ci.yml

+1
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ jobs:
4545
matrix:
4646
include:
4747
- distro: debian10
48+
ansible-version: '>=9, <10'
4849
- distro: debian11
4950
- distro: debian12
5051
- distro: ubuntu1804

defaults/main.yml

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
# defaults file
22
---
3-
virtualenv_python_version_major: 2
3+
virtualenv_install_method: native
4+
# Only available for < 24.04
5+
# virtualenv_install_method: pip
6+
7+
virtualenv_python_version_major: 3
48
virtualenv_python_version: "{{ virtualenv_python_version_major }}"

tasks/install-native.yml

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# tasks file
2+
---
3+
- name: install | native | install dependencies
4+
ansible.builtin.apt:
5+
name: "{{ virtualenv_install_native_apt_dependencies }}"
6+
state: "{{ apt_install_state | default('latest') }}"
7+
update_cache: true
8+
cache_valid_time: "{{ apt_update_cache_valid_time | default(3600) }}"
9+
tags:
10+
- virtualenv-install-native-install

tasks/install-pip.yml

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# tasks file
2+
---
3+
- name: install | pip | install dependencies
4+
ansible.builtin.apt:
5+
name: "{{ virtualenv_install_get_pip_apt_dependencies }}"
6+
state: "{{ apt_install_state | default('latest') }}"
7+
update_cache: true
8+
cache_valid_time: "{{ apt_update_cache_valid_time | default(3600) }}"
9+
tags:
10+
- virtualenv-install-pip-dependencies
11+
12+
- name: install | pip | install (latest) # noqa package-latest
13+
ansible.builtin.pip:
14+
name: "{{ virtualenv_install_get_pip_pip_dependencies }}"
15+
state: latest
16+
executable: "pip{{ virtualenv_python_version_major | string }}"
17+
tags:
18+
- virtualenv-install-pip-install

tasks/main.yml

+17-13
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,27 @@
11
# tasks file
22
---
3-
- name: install dependencies
4-
ansible.builtin.apt:
5-
name: "{{ virtualenv_dependencies }}"
6-
state: "{{ apt_install_state | default('latest') }}"
7-
update_cache: true
8-
cache_valid_time: "{{ apt_update_cache_valid_time | default(3600) }}"
3+
- name: install | native
4+
ansible.builtin.import_tasks: install-native.yml
5+
when: virtualenv_install_method == 'native'
96
tags:
107
- configuration
118
- virtualenv
12-
- virtualenv-install
13-
- virtualenv-install-dependencies
9+
- virtualenv-install-native
10+
11+
- name: install | pip
12+
ansible.builtin.import_tasks: install-pip.yml
13+
when: virtualenv_install_method == 'pip'
14+
tags:
15+
- configuration
16+
- virtualenv
17+
- virtualenv-install-pip
1418

15-
- name: install # noqa package-latest
16-
ansible.builtin.pip:
17-
name: "{{ virtualenv_pip_dependencies }}"
18-
state: latest
19-
executable: "pip{{ virtualenv_python_version_major | string }}"
19+
- name: verify
20+
ansible.builtin.command: >
21+
virtualenv --version
22+
changed_when: false
2023
tags:
2124
- configuration
2225
- virtualenv
2326
- virtualenv-install
27+
- virtualenv-install-verify

tests/tasks/pre.yml

+26-23
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,31 @@
11
# pre test file
22
---
3-
- name: pip | check
4-
ansible.builtin.shell: >
5-
which pip
6-
register: _pip_installed
7-
changed_when: false
8-
check_mode: false
9-
failed_when: false
10-
11-
- name: pip | install
12-
when: _pip_installed.rc != 0
3+
- name: pip
4+
when: virtualenv_install_method == 'pip'
135
block:
14-
- name: dependencies | install
15-
ansible.builtin.apt:
16-
name:
17-
- "python{{ virtualenv_python_version_major is version('3', '>=') | ternary('3', '') }}"
18-
- curl
19-
state: "{{ apt_install_state | default('latest') }}"
20-
update_cache: true
21-
cache_valid_time: "{{ apt_update_cache_valid_time | default(3600) }}"
22-
23-
- name: pip | install # noqa command-instead-of-module
6+
- name: pip | check
247
ansible.builtin.shell: >
25-
curl -sL {{ virtualenv_get_pip_url }} | python{{ virtualenv_python_version_major | string }} -
8+
which pip
9+
register: _pip_installed
2610
changed_when: false
27-
tags:
28-
- skip_ansible_lint
11+
check_mode: false
12+
failed_when: false
13+
14+
- name: pip | install
15+
when: _pip_installed.rc != 0
16+
block:
17+
- name: dependencies | install
18+
ansible.builtin.apt:
19+
name:
20+
- "python{{ virtualenv_python_version_major is version('3', '>=') | ternary('3', '') }}"
21+
- curl
22+
state: "{{ apt_install_state | default('latest') }}"
23+
update_cache: true
24+
cache_valid_time: "{{ apt_update_cache_valid_time | default(3600) }}"
25+
26+
- name: pip | install # noqa command-instead-of-module
27+
ansible.builtin.shell: >
28+
curl -sL {{ virtualenv_get_pip_url }} | python{{ virtualenv_python_version_major | string }} -
29+
changed_when: false
30+
tags:
31+
- skip_ansible_lint

tests/test.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# test file
22
---
3-
- hosts: localhost
3+
- name: converge
4+
hosts: localhost
45
connection: local
56
become: true
67
pre_tasks:

tests/vagrant.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# test file
22
---
3-
- hosts: all
3+
- name: converge
4+
hosts: all
45
remote_user: vagrant
56
become: true
67
pre_tasks:

tests/vars/_bionic.yml

-4
This file was deleted.

tests/vars/_buster.yml

-4
This file was deleted.

tests/vars/_default.yml

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
# vars file
22
---
3-
virtualenv_python_version_major: 3
4-
virtualenv_get_pip_url: 'https://bootstrap.pypa.io/pip/get-pip.py'
3+
virtualenv_install_method: pip

tests/vars/_noble.yml

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# vars file
2+
---
3+
virtualenv_install_method: native

vars/main.yml

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
# vars file
22
---
3-
virtualenv_dependencies:
3+
virtualenv_install_native_apt_dependencies:
4+
- "python{{ virtualenv_python_version_major is version('3', '>=') | ternary('3', '') }}-virtualenv"
5+
- "python{{ virtualenv_python_version_major is version('3', '>=') | ternary('3', '') }}-virtualenvwrapper"
6+
7+
virtualenv_install_get_pip_apt_dependencies:
48
- "python{{ virtualenv_python_version_major is version('3', '>=') | ternary('3', '') }}"
59

6-
virtualenv_pip_dependencies:
10+
virtualenv_install_get_pip_pip_dependencies:
711
- virtualenv
812
- virtualenvwrapper

0 commit comments

Comments
 (0)