Esempio n. 1
0
 /**
  * @throws \App\Exceptions\InvalidConfigException
  * @throws ReleaseException
  */
 private function writePlaybooks()
 {
     $this->fs()->put($this->release->path("empty.yml"), "");
     $playbook = new PlaybookConfig();
     $config = $this->release->config();
     foreach ($config->roles() as $play) {
         if (in_array($play->name(), $this->release->roles) || in_array($play->role(), $this->release->roles)) {
             $play->setSudo(true);
             $playbook->add($play);
         }
     }
     $playbook->setVars(["project_name" => $this->release->repo->name, "global" => array_merge($config->defaults(), $config->globals(), (array) $this->release->repo->params), "build_tar" => $this->release->path("build.tar.gz"), "build_path" => $this->release->path(), "build_version" => $this->release->commit, "build_version_short" => $this->release->commit()->getShortHash(), "inventory_name" => $this->release->inventory->name] + $config->getVars());
     $playbookFile = $this->release->path(Release::PLAYBOOK_FILENAME);
     if (!$this->fs()->put($playbookFile, $playbook->render())) {
         throw new ReleaseException($this->release, "Cannot write playbook file: {$playbookFile}!");
     }
     $inventoryFile = $this->release->path(Release::INVENTORY_FILENAME);
     if (!$this->fs()->put($inventoryFile, $this->release->inventory->render())) {
         throw new ReleaseException($this->release, "Cannot write inventory file: {$inventoryFile}!");
     }
 }