public function run()
    {
        foreach ($this->getSteps() as $step) {
            $this->logger->info('Starting "'.$step->getTitle().'"');

            foreach ($this->getServersForStep($step) as $server) {
                if ($step->isMandatory()) {
                    $server->runCommands();
                    $this->logger->info('Finished "'.$step->getTitle().'" on "'.$server->getTitle().'"');
                } else {
                    try {
                        $server->runCommands();
                        $this->logger->info('Finished "'.$step->getTitle().'" on "'.$server->getTitle().'"');
                    } catch (\Exception $e) {
                        $this->logger->info('Failed to run "'.$step->getTitle().'" on "'.$server->getTitle().'"');
                    }
                }
            }
        }
    }