First working version.

This commit is contained in:
Ronald Farrer 2022-08-25 09:07:21 -07:00
parent 8bc7a20125
commit 66636433eb
11 changed files with 222 additions and 2 deletions

View file

@ -0,0 +1,28 @@
- name: Create hashcat instance
ec2:
region: "{{ ec2.region }}"
keypair: "{{ ec2.credentials }}"
instance_tags: "{{ ec2.tags }}"
image: "{{ ec2.image }}"
instance_type: "{{ ec2.instance_type }}"
instance_profile_name: "{{ ec2.role | default('') }}"
instance_initiated_shutdown_behavior: "{{ ec2.shutdownbehavior }}"
volumes: "{{ ec2.volumes }}"
group: "{{ ec2.sg }}"
vpc_subnet_id: "{{ ec2.subnet }}"
assign_public_ip: "{{ ec2.public_ip | default('no') }}"
private_ip: "{{ ec2.private_ip | default('') }}"
wait: true
register: myec2
- name: Add new instance to host group
add_host: hostname={{ item.public_ip }} groupname=hashcat
with_items: '{{myec2.instances}}'
- name: Wait for SSH to come up
wait_for:
host: "{{ item.public_ip }}"
port: 22
state: started
#delay: 500
with_items: '{{ myec2.instances }}'

View file

@ -0,0 +1,98 @@
- name: Update repo list (update) and upgrade instance (upgrade)
become: yes
ansible.builtin.apt:
update_cache: yes
- name: Upgrade the OS (dist-upgrade)
become: yes
ansible.builtin.apt:
upgrade: dist
- name: Install p7zip
become: yes
ansible.builtin.apt:
name: p7zip
update_cache: yes
- name: jq
become: yes
ansible.builtin.apt:
name: jq
update_cache: yes
#- name: Install build-essential
# become: yes
# ansible.builtin.apt:
# name: build-essential
# update_cache: yes
- name: Install nVidia CUDA keyring
become: yes
ansible.builtin.apt:
deb: https://developer.download.nvidia.com/compute/cuda/repos/{{ ec2.os }}/x86_64/cuda-keyring_1.0-1_all.deb
- name: Install nVidia cuda-drivers
become: yes
ansible.builtin.apt:
name: cuda-drivers
update_cache: yes
- name: Install nVidia cuda
become: yes
ansible.builtin.apt:
name: cuda
update_cache: yes
- name: Copy hashcat_start script
become: yes
ansible.builtin.copy:
src: hashcat_start.j2
dest: /usr/local/bin/hashcat_start
owner: root
group: root
mode: '0755'
- name: Download latest goofys
become: yes
ansible.builtin.get_url:
url: https://github.com/kahing/goofys/releases/latest/download/goofys
dest: /usr/local/bin/goofys
mode: '0755'
- name: Create aws directory if it does not exist
become: yes
ansible.builtin.file:
path: /root/.aws/
state: directory
mode: '0755'
- name: Copy AWS Credentials
become: yes
ansible.builtin.copy:
src: credentials.j2
dest: /root/.aws/credentials
owner: root
group: root
mode: '0600'
- name: Set up fstab
become: yes
lineinfile:
dest: /etc/fstab
line: '{{ item }}'
with_items:
- 'goofys#{{ s3.bucket_name }} {{ s3.mount_point }} fuse _netdev,allow_other,--file-mode=0660,--dir-mode=0770,--uid=1000,--gid=1000,--endpoint={{ s3.end_point }},noauto 0 0'
- name: Mount S3 bucket
become: yes
command: mount /mnt
args:
warn: no
become: true
- name: Run hashcat
become: yes
shell: "(/usr/local/bin/hashcat_start >/dev/null 2>&1 &)"
###command: "(/usr/local/bin/hashcat_start &)"

View file

@ -0,0 +1,9 @@
- name: Terminate hashcat instance
ec2:
region: "{{ ec2.region }}"
instance_tags: "{{ ec2.tags }}"
instance_profile_name: "{{ ec2.role | default('') }}"
image: "{{ ec2.image }}"
exact_count: 0
wait: true