[
{ "percent": 38,"messageKey":"config_node",       "match": "prefix", "pattern":"PLAY [Configure" },
{ "percent": 39,"messageKey":"nginx_dhparam",     "match": "prefix", "pattern":"TASK [nginx : Create a strong dhparam.pem]" },
{ "percent": 40,"messageKey":"nginx_certbot",     "match": "prefix", "pattern":"TASK [nginx : Init certbot]" },
{ "percent": 42,"messageKey":"nginx_certbot",     "match": "prefix", "pattern":"TASK [bubble : Set system timezone]" },
{ "percent": 43,"messageKey":"nginx_certbot",     "match": "prefix", "pattern":"TASK [Write bubble env file]" },
{ "percent": 45,"messageKey":"bubble_db",         "match": "prefix", "pattern":"TASK [bubble : Populate database]" },
{ "percent": 57,"messageKey":"algo_sh",           "match": "prefix", "pattern":"TASK [Write install_algo.sh template]" },
{ "percent": 63,"messageKey":"algo_sh",           "match": "prefix", "pattern":"PLAY [localhost]" },
{ "percent": 64,"messageKey":"algo_sh",           "match": "prefix", "pattern":"TASK [Generate the SSH private key]" },
{ "percent": 65,"messageKey":"algo_sh",           "match": "prefix", "pattern":"TASK [common : Periodic upgrades configured]" },
{ "percent": 66,"messageKey":"algo_sh",           "match": "prefix", "pattern":"RUNNING HANDLER [common : restart systemd-networkd]" },
{ "percent": 67,"messageKey":"algo_sh",           "match": "prefix", "pattern":"TASK [common : Iptables configured]" },
{ "percent": 68,"messageKey":"algo_sh",           "match": "prefix", "pattern":"included: /root/ansible/roles/algo/algo/roles/dns/tasks/ubuntu.yml for localhost" },
{ "percent": 69,"messageKey":"algo_sh",           "match": "prefix", "pattern":"TASK [dns : Add the repository]" },
{ "percent": 70,"messageKey":"algo_sh",           "match": "prefix", "pattern":"TASK [dns : Install dnscrypt-proxy]" },
{ "percent": 71,"messageKey":"algo_sh",           "match": "prefix", "pattern":"TASK [dns : Ubuntu | Configure AppArmor policy for dnscrypt-proxy]" },
{ "percent": 72,"messageKey":"algo_sh",           "match": "prefix", "pattern":"included: /root/ansible/roles/algo/algo/roles/wireguard/tasks/ubuntu.yml for localhost" },
{ "percent": 74,"messageKey":"algo_sh",           "match": "prefix", "pattern":"TASK [wireguard : WireGuard installed]" },
{ "percent": 75,"messageKey":"algo_sh",           "match": "prefix", "pattern":"TASK [wireguard : Save preshared keys]" },
{ "percent": 76,"messageKey":"algo_sh",           "match": "prefix", "pattern":"TASK [wireguard : WireGuard users config generated]" },
{ "percent": 77,"messageKey":"algo_sh",           "match": "prefix", "pattern":"TASK [strongswan : Set OS specific facts]" },
{ "percent": 78,"messageKey":"algo_sh",           "match": "prefix", "pattern":"TASK [strongswan : Ubuntu | Install strongSwan]" },
{ "percent": 79,"messageKey":"algo_sh",           "match": "prefix", "pattern":"TASK [strongswan : Ensure that the strongswan user exists]" },
{ "percent": 80,"messageKey":"algo_sh",           "match": "prefix", "pattern":"TASK [strongswan : Disable unneeded plugins]" },
{ "percent": 81,"messageKey":"algo_sh",           "match": "prefix", "pattern":"TASK [strongswan : Ensure that required plugins are enabled]" },
{ "percent": 82,"messageKey":"algo_sh",           "match": "prefix", "pattern":"TASK [strongswan : debug]" },
{ "percent": 83,"messageKey":"algo_sh",           "match": "prefix", "pattern":"TASK [strongswan : Copy the keys to the strongswan directory]" },
{ "percent": 84,"messageKey":"algo_sh",           "match": "prefix", "pattern":"RUNNING HANDLER [strongswan : daemon-reload]" },
{ "percent": 85,"messageKey":"restart_algo",      "match": "prefix", "pattern":"Restarted supervisord" },
{ "percent": 86,"messageKey":"restart_algo",      "match": "prefix", "pattern":"algo_refresh_users_monitor: stopped" },
{ "percent": 87,"messageKey":"restart_algo",      "match": "prefix", "pattern":"TASK [algo : Allow HTTPS]" },
{ "percent": 88,"messageKey":"restart_algo",      "match": "prefix", "pattern":"TASK [Ensure mitmproxy user owns all mitmproxy files]" },
{ "percent": 89,"messageKey":"mitmproxy_set_cert","match": "prefix", "pattern":"TASK [finalizer : Install mitmproxy CA cert in local CA store]" },
{ "percent": 92,"messageKey":"mitmproxy_set_cert","match": "prefix", "pattern":"TASK [finalizer : Install mitmproxy public certs in bubble dir]" },
{ "percent": 93,"messageKey":"ssh_keys",          "match": "prefix", "pattern":"TASK [finalizer : Ensure authorized SSH keys are up-to-date]" },
{ "percent": 94,"messageKey":"ready_check",       "match": "prefix", "pattern":"READY-CHECK-1" },
{ "percent": 95,"messageKey":"ready_check",       "match": "prefix", "pattern":"READY-CHECK-5" },
{ "percent": 96,"messageKey":"ready_check",       "match": "prefix", "pattern":"READY-CHECK-9" },
{ "percent": 97,"messageKey":"ready_check",       "match": "prefix", "pattern":"READY-CHECK-13" },
{ "percent": 98,"messageKey":"ready_check2",      "match": "prefix", "pattern":"READY-CHECK-17" },
{ "percent": 99,"messageKey":"ready_check2",      "match": "prefix", "pattern":"READY-CHECK-21" }
]
