Hyperling
8e4247fd58
* Add Brave to Fedora (DNF). * First attempt to add metasploit installer. * Fix check for Linux and macOS to use System, not Distro. * Add more memorable aliases for msfconsole. * Telegraf is attemping to install doube-time since hosts match both localhost and hostname. * Add missing pipe. * Attempt to fix flatpak play no longer being able to find user_ling var. Don't see anything in the dev branch which would have changed this behavior though. * Add note for future removal. * Use general gather for all groups. Move user variables to it. * Feodra Workstation succeeds now! Add newline to end of file. * First attempt at doing host variables via local files. * Try using ini as lookup. * Remove "-" typo. * Add an initial gather even though it may not have all values properly populated on a machine's first run. * Fix typo in ignore. * Try default values. * Try defaults without quotes. * Add a section header. Add a default back. * Rename section to global. * Add workstation provision file. Change variables to require true. Only load config file if hosts is not being used. * Put flags back on Dell so that programs are not removed while configuring files. * Add provision config read to workstation. * Go ahead and force config files for hosts. Only affects dev branch until PR. Start making miner and server files. * Change {{}} to (()) in comments to avoid undefined variable error. * Attempt to modify existing task groups instead of moving all tasks to one large group. * Try to use blocks. * Name blocks and remove redundant calls. * Do the bare minimum for miner and server so the variables are at least defined. * Ensure Server and Miner look at their own files. * Test how block variables are handled. * Are the variables true Booleans, not strings?? * Change exits to tests so we can see which ones work. * Add more tests. * Add the test results. * Add config_dir for plays to use when making any config files. * Move provision config dir. * Add results of test. * Remove the exit. Fix the blocks' whens. * Do provision after starting, that way all facts exist. * Fix all "true"'s. * Adjust variable checks for provision_config changes. * Change gui to wrk. Add aliases to cat files. * Comment entire hosts file. * Add localhost, * Try localhost rather than host file group. * Fix typo in "prov_dir". * Add newline to end of file. * Add newline to end of file. * Add newline to end of file. * Debug variable. Should be getting set but receiving errors on Fedora. * Add newline to end of file. * Fix debug property, var not name. * Fix show-config. Change show-config-all to only hit active files, not backups. * Uncomment commented workstation. * Add commands to edit files. * Attempt to fix gitlab installer variables. * Attempt to fix gitlab play variable. * Replacing `ling` for `{{ user }}`. * Remove TODO. * Remove `config_dir` and move provision config back near top. * `user_root` is not needed, already moved to /usr/local/etc/. * Add value for running anything at all. This allows user to set up files before first run. * Reduce the check frequency, * Ensure files are printed in correct order. Also add a newline between each. * Only send file if it exists, and then remove it if it sends successfully. * Always set the destination variables. * Only run the scp for systems without sshfs. Forgot that system variables were shared between the two, and do not want to scp the files to themselves then delete the files from the mount.
209 lines
6.3 KiB
YAML
209 lines
6.3 KiB
YAML
---
|
|
# Install OpenCL drivers.
|
|
|
|
## Step 0/3: Dependencies ##
|
|
- name: Miner | Driver | AMDGPU | Variables
|
|
set_fact:
|
|
amdgpu_cron_job: AMDGPU - Need To Finish Installation
|
|
amdgpu_cron_cmd: "{{ root_home.stdout }}/scm.sh"
|
|
|
|
- name: Miner | Driver | AMDGPU | Install Dependencies
|
|
package:
|
|
name:
|
|
- dkms
|
|
- mesa-common-dev
|
|
- clinfo
|
|
state: present
|
|
|
|
- name: Miner | Driver | AMDGPU | Set GRUB Timer
|
|
lineinfile:
|
|
path: /etc/default/grub
|
|
regexp: '^GRUB_TIMEOUT='
|
|
line: 'GRUB_TIMEOUT=3'
|
|
state: present
|
|
backup: yes
|
|
|
|
- name: Miner | Driver | AMDGPU | Remove Previous Run's Cron Job
|
|
cron:
|
|
user: root
|
|
name: "{{ amdgpu_cron_job }}"
|
|
state: absent
|
|
|
|
# Tests
|
|
- name: Miner | Driver | AMDGPU | Check If GA Kernel Installed
|
|
shell: 'uname --kernel-release | grep 5.4.0-65-generic'
|
|
register: ga_kernel
|
|
ignore_errors: yes
|
|
|
|
- name: Miner | Driver | AMDGPU | Check If HWE Kernel Installed
|
|
shell: 'apt search linux-image-5.8.0-* | grep -c installed'
|
|
register: hwe_kernel
|
|
ignore_errors: yes
|
|
|
|
#- name: Miner | Driver | AMDGPU | Check If All Driver Installed
|
|
# shell: 'which amdgpu-uninstall'
|
|
# register: amdgpu_install
|
|
# ignore_errors: yes
|
|
|
|
- name: Miner | Driver | AMDGPU | Check If Pro Driver Installed
|
|
shell: 'amdgpu-pro-uninstall -y'
|
|
register: amdgpu_install
|
|
ignore_errors: yes
|
|
|
|
- name: Miner | Driver | AMDGPU | DEBUG
|
|
debug:
|
|
var: "{{ item }}"
|
|
loop:
|
|
- ga_kernel
|
|
- hwe_kernel
|
|
- amdgpu_install
|
|
|
|
|
|
|
|
## Step 1/3: Get Correct Kernel ##
|
|
- name: Miner | Driver | AMDGPU | Install Recommended GA Kernel
|
|
shell: apt install --install-recommends linux-generic
|
|
when: amdgpu_install.failed and hwe_kernel.stdout != "0" and ga_kernel.failed
|
|
|
|
- name: Miner | Driver | AMDGPU | Install Specific GA Kernel For Booting
|
|
package:
|
|
name:
|
|
- linux-headers-5.4.0-65
|
|
- linux-headers-5.4.0-65-generic
|
|
- linux-headers-generic
|
|
- linux-image-generic
|
|
- linux-modules-extra-5.4.0-65-generic
|
|
state: present
|
|
when: amdgpu_install.failed and hwe_kernel.stdout != "0" and ga_kernel.failed
|
|
|
|
- name: Miner | Driver | AMDGPU | Prepare GRUB To Boot GA Kernel
|
|
lineinfile:
|
|
path: /etc/default/grub
|
|
regexp: '^GRUB_DEFAULT='
|
|
line: 'GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.4.0-65-generic"'
|
|
state: present
|
|
backup: yes
|
|
when: amdgpu_install.failed and hwe_kernel.stdout != "0" and ga_kernel.failed
|
|
|
|
- name: Miner | Driver | AMDGPU | Update GRUB
|
|
shell: update-grub
|
|
when: amdgpu_install.failed and hwe_kernel.stdout != "0" and ga_kernel.failed
|
|
|
|
- name: Miner | Driver | AMDGPU | Prepare Cron Job To SCM
|
|
cron:
|
|
user: root
|
|
name: "{{ amdgpu_cron_job }}"
|
|
special_time: reboot
|
|
job: "{{ amdgpu_cron_cmd }}"
|
|
state: present
|
|
disabled: no
|
|
when: amdgpu_install.failed and hwe_kernel.stdout != "0" and ga_kernel.failed
|
|
|
|
- name: Miner | Driver | AMDGPU | Reboot To GA Kernel
|
|
shell: reboot
|
|
when: amdgpu_install.failed and hwe_kernel.stdout != "0" and ga_kernel.failed
|
|
|
|
- pause:
|
|
prompt: "Rebooting to GA kernel! Please hold."
|
|
when: amdgpu_install.failed and hwe_kernel.stdout != "0" and ga_kernel.failed
|
|
|
|
|
|
|
|
## Step 2/3: Remove Incorrect Kernels ##
|
|
- name: Miner | Driver | AMDGPU | Remove Bad Kernels
|
|
shell: "apt remove --purge linux-generic-hwe-20.04 \
|
|
linux-oem-20.04 \
|
|
linux-hwe-* \
|
|
linux-oem-* \
|
|
linux-modules-5.1* \
|
|
linux-modules-5.8.0-* \
|
|
linux-modules-5.6.0-*"
|
|
when: amdgpu_install.failed and hwe_kernel.stdout != "0"
|
|
|
|
- name: Miner | Driver | AMDGPU | Update + Clean System
|
|
shell: "apt update; apt dist-upgrade -y; apt autoremove -y"
|
|
when: amdgpu_install.failed and hwe_kernel.stdout != "0"
|
|
|
|
# This is to ensure we can test adding `apt install --install-recommends linux-generic` later
|
|
- name: Miner | Driver | AMDGPU | Boot Default Kernel
|
|
lineinfile:
|
|
path: /etc/default/grub
|
|
regexp: '^GRUB_DEFAULT='
|
|
line: 'GRUB_DEFAULT=0'
|
|
state: present
|
|
backup: yes
|
|
when: amdgpu_install.failed and hwe_kernel.stdout != "0"
|
|
|
|
- name: Miner | Driver | AMDGPU | Update GRUB
|
|
shell: update-grub
|
|
when: amdgpu_install.failed and hwe_kernel.stdout != "0"
|
|
|
|
- name: Miner | Driver | AMDGPU | Prepare Cron Job To SCM
|
|
cron:
|
|
user: root
|
|
name: "{{ amdgpu_cron_job }}"
|
|
special_time: reboot
|
|
job: "{{ amdgpu_cron_cmd }}"
|
|
state: present
|
|
disabled: no
|
|
when: amdgpu_install.failed and hwe_kernel.stdout != "0"
|
|
|
|
# This reboot may not be necessary.
|
|
#- name: Miner | Driver | AMDGPU | Reboot To Ensure GA Is 0
|
|
# shell: reboot
|
|
# when: amdgpu_install.failed and hwe_kernel.stdout != "0"
|
|
#
|
|
#- pause:
|
|
# prompt: "Rebooting to clear kernels! Please hold."
|
|
# when: amdgpu_install.failed and hwe_kernel.stdout != "0"
|
|
|
|
|
|
|
|
## Step 3/3: Install AMD PRO Driver ##
|
|
- name: Miner | Driver | AMDGPU | Download Driver
|
|
shell: 'scp {{ user }}@leet:InstallFiles/Drivers/amdgpu-pro-20.45-1188099-ubuntu-20.04.tar.xz {{ root_home.stdout }}/Downloads/'
|
|
when: amdgpu_install.failed or "1" == "1"
|
|
|
|
- name: Miner | Driver | AMDGPU | Extract Tarball
|
|
shell: 'cd {{ root_home.stdout }}/Downloads; tar -xvf amdgpu-pro-20.45-1188099-ubuntu-20.04.tar.xz'
|
|
when: amdgpu_install.failed or "1" == "1"
|
|
|
|
## Only one driver set can exist at a time! ##
|
|
#- name: Miner | Driver | AMDGPU | Install AMDGPU All Driver
|
|
# shell: 'cd {{ root_home.stdout }}/Downloads/amdgpu-pro-20.45-1188099-ubuntu-20.04; ./amdgpu-install -y'
|
|
# when: amdgpu_install.failed
|
|
|
|
- name: Miner | Driver | AMDGPU | Install AMDGPU-Pro Driver
|
|
shell: 'cd {{ root_home.stdout }}/Downloads/amdgpu-pro-20.45-1188099-ubuntu-20.04; ./amdgpu-pro-install -y --opencl=pal,legacy'
|
|
when: amdgpu_install.failed or "1" == "1"
|
|
|
|
- name: Miner | Driver | AMDGPU | Prepare Cron Job To SCM
|
|
cron:
|
|
user: root
|
|
name: "{{ amdgpu_cron_job }}"
|
|
special_time: reboot
|
|
job: "{{ amdgpu_cron_cmd }}"
|
|
state: present
|
|
disabled: no
|
|
when: amdgpu_install.failed
|
|
|
|
- name: Miner | Driver | AMDGPU | Reboot To GA Kernel
|
|
shell: reboot
|
|
when: amdgpu_install.failed
|
|
|
|
- pause:
|
|
prompt: "Rebooting to use driver! Please hold."
|
|
when: amdgpu_install.failed
|
|
|
|
|
|
|
|
## We're done! ##
|
|
- name: Miner | Driver | AMDGPU | Test Driver
|
|
shell: clinfo -l
|
|
register: clinfo
|
|
|
|
- name: Miner | Driver | AMDGPU | Test Results
|
|
debug:
|
|
var: clinfo
|
|
ignore_errors: yes
|