--- # Install Metasploit Framework - name: General | Software | Metasploit | Facts set_fact: metasploit_installer: msfinstall when: ansible_system in ("Linux", "Darwin") and pentesting == true - name: General | Software | Metasploit | Check Install Status stat: path: /usr/bin/msfconsole register: metasploit_status - name: General | Software | Metasploit | Refresh Apt Files shell: "{{ item }}" loop: - "mkdir -p /tmp/apt/" - "mv -fv /usr/share/keyrings/metasploit-framework.gpg /tmp/apt/metasploit-framework.gpg.old" - "mv -fv /etc/apt/sources.list.d/metasploit-framework.list /tmp/apt/metasploit-framework.list.old" - "mv -fv /etc/apt/preferences.d/pin-metasploit.pref /tmp/apt/pin-metasploit.pref.old" when: ansible_system in ("Linux") and ansible_pkg_mgr == "apt" and not metasploit_status.stat.exists and pentesting == true ignore_errors: true - name: General | Software | Metasploit | Install shell: "{{ item }}" loop: - "curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > {{ metasploit_installer }}" - "chmod 755 {{ metasploit_installer }}" - "mkdir -p {{ global_bin }}" - "mv -fv ./{{ metasploit_installer }} {{ global_bin }}/{{ metasploit_installer }}" - yes y | "{{ global_bin }}/{{ metasploit_installer }}" when: ansible_system in ("Linux", "Darwin") and not metasploit_status.stat.exists and pentesting == true - name: General | Software | Metasploit | Remove (Darwin) shell: "{{ item }}" loop: - "/opt/metasploit-framework/bin/msfremove" when: ansible_system in ("Darwin") and not metasploit_status.stat.exists and pentesting == false - name: General | Software | Metasploit | Remove (APT) shell: "{{ item }}" loop: - "apt purge metasploit-framework" - "apt autoremove --purge" when: ansible_system in ("Linux") and ansible_pkg_mgr == "apt" and not metasploit_status.stat.exists and pentesting == false