Napiszmy historię¶
Playbooki powinny być jaki historia, pełna dobrze odegranych ról.
Bohater¶
Marian¶


Marian jest hipisem, dlatego nie przepada za statycznym typowaniem. Jest też dorosły i odpowiedzialny. Dlatego Python będzie świetnym dla niego.
Rola: Python¶
roles/
python/
tasks/
main.yml
defaults/
main.yml
Defaults¶
python_version: 3.6
Tasks¶
---
- name: Add latest Python
apt_repository:
repo: "ppa:jonathonf/python-{{ python_version }}"
state: present
when: ansible_distribution == 'Ubuntu' and ansible_distribution_version != '18.04'
- name: install Python with dev
apt:
name: "{{ item }}"
state: present
with_items:
- "python{{ python_version }}"
- "python-dev"
- "python{{ python_version }}-dev"
- "python{{ python_version }}-venv"
- name: install Pip
apt:
name: "{{ item }}"
state: present
with_items:
- python-pip
- python3-pip
- name: install Venv for python3
apt:
name: "python{{ python_version }}-venv"
state: present
- name: install Venv for python2
pip:
name: "virtualenv"
state: present
Output¶
$ ansible-playbook playbooks/python.yml
PLAY [install and config python] ***************************************************************************************************************************************************************************
TASK [Gathering Facts] *************************************************************************************************************************************************************************************
ok: [localhost]
TASK [python : Add latest Python] **************************************************************************************************************************************************************************
skipping: [localhost]
TASK [python : install Python with dev] ********************************************************************************************************************************************************************
changed: [localhost] => (item=[u'python3.6', u'python-dev', u'python3.6-dev', u'python3.6-venv'])
TASK [python : install Pip] ********************************************************************************************************************************************************************************
changed: [localhost] => (item=[u'python-pip', u'python3-pip'])
TASK [python : install Venv for python3] *******************************************************************************************************************************************************************
ok: [localhost]
TASK [python : install Venv for python2] *******************************************************************************************************************************************************************
ok: [localhost]
PLAY RECAP *************************************************************************************************************************************************************************************************
localhost : ok=5 changed=2 unreachable=0 failed=0
Note
Apt jest, jak każdy widzi. apt