126 lines
3.3 KiB
YAML
126 lines
3.3 KiB
YAML
- name: check/create instance
|
|
hosts: logdetective
|
|
user: root
|
|
gather_facts: False
|
|
vars_files:
|
|
- /srv/web/infra/ansible/vars/global.yml
|
|
- /srv/private/ansible/vars.yml
|
|
|
|
handlers:
|
|
- import_tasks: "{{ handlers_path }}/restart_services.yml"
|
|
|
|
tasks:
|
|
- import_tasks: "{{ tasks_path }}/aws_cloud.yml"
|
|
when: datacenter == 'aws'
|
|
|
|
- import_tasks: "{{ tasks_path }}/swap.yml"
|
|
when:
|
|
- datacenter == 'aws'
|
|
- swap_file_size_mb is defined
|
|
|
|
- name: cloud basic setup
|
|
hosts: logdetective
|
|
become: True
|
|
become_user: root
|
|
gather_facts: True
|
|
vars:
|
|
drive_device: 38e6c8c2-5747-47bf-b3d2-9f0dea371edc
|
|
vars_files:
|
|
- /srv/web/infra/ansible/vars/global.yml
|
|
- /srv/private/ansible/vars.yml
|
|
|
|
pre_tasks:
|
|
- import_tasks: "{{ tasks_path }}/yumrepos.yml"
|
|
|
|
|
|
tasks:
|
|
- import_tasks: "{{ tasks_path }}/cloud_setup_basic.yml"
|
|
- name: Install basic packages
|
|
ansible.builtin.dnf:
|
|
name:
|
|
- python3-pip
|
|
- python3-devel
|
|
- pciutils
|
|
- git
|
|
- podman
|
|
- podman-compose
|
|
- wget
|
|
- gcc-c++
|
|
|
|
- name: Download and install cuda drivers repo
|
|
ansible.builtin.shell:
|
|
cmd: |
|
|
dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/fedora39/x86_64/cuda-fedora39.repo
|
|
dnf clean all
|
|
dnf -y install cuda-toolkit-12-6
|
|
dnf -y module install nvidia-driver:open-dkms
|
|
register: cuda_installation
|
|
|
|
- name: Restart the system
|
|
ansible.builtin.reboot:
|
|
when: cuda_installation.changed
|
|
|
|
- name: Ensure state of secondary drive
|
|
ignore_errors: true
|
|
block:
|
|
- name: Ensure filesystem and format
|
|
community.general.filesystem:
|
|
dev: "{{ drive_device }}"
|
|
fstype: ext4
|
|
force: false # Explicit better than implicit
|
|
|
|
- name: Ensure mountpoint
|
|
ansible.builtin.file:
|
|
path: /mnt/srv
|
|
state: directory
|
|
|
|
- name: Mount the drive on boot
|
|
ansible.posix.mount:
|
|
src: "{{ drive_device }}"
|
|
path: /mnt/srv
|
|
boot: true
|
|
state: mounted
|
|
fstype: ext4
|
|
|
|
- name: Create pip cache dir
|
|
ansible.builtin.file:
|
|
state: directory
|
|
path: /mnt/srv/.cache/pip
|
|
mode: "0777"
|
|
recurse: true
|
|
|
|
- name: Set pip cache location to secondary drive
|
|
ansible.builtin.shell:
|
|
export PIP_CACHE_DIR=/mnt/srv/.cache/pip
|
|
|
|
- name: Create Hugging Face cache dir
|
|
ansible.builtin.file:
|
|
state: directory
|
|
path: /mnt/srv/.cache/huggingface
|
|
mode: "0777"
|
|
recurse: true
|
|
|
|
- name: Set Hugging Face cache location to the secondary drive
|
|
ansible.builtin.shell:
|
|
export HUGGINGFACE_HUB_CACHE=/mnt/srv/.cache/huggingface
|
|
|
|
# this should be set to ansible_hostname
|
|
# - name: "set hostname (required by some services, at least postfix need it)"
|
|
# hostname: name="{{copr_hostbase}}.cloud.fedoraproject.org"
|
|
# when: env != 'production'
|
|
|
|
- name: provision instance
|
|
hosts: logdetective
|
|
become: True
|
|
become_user: root
|
|
gather_facts: True
|
|
|
|
vars_files:
|
|
- /srv/web/infra/ansible/vars/global.yml
|
|
- /srv/private/ansible/vars.yml
|
|
- /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml
|
|
|
|
# Roles are run first, before tasks, regardless of where you place them here.
|
|
roles:
|
|
- base
|
|
- nagios_client
|