ansible/playbooks/hosts/logdetective01.fedorainfracloud.org.yml
Jiri Podivin 8a53a49117 Installing with shell to safe my sanity
Signed-off-by: Jiri Podivin <jpodivin@redhat.com>
2024-08-30 15:43:56 +02:00

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