Это хорошая практика, чтобы добавить узлы и папку клиента в шаблон сервера Chef

Я все еще учусь о шеф-поваре. Я загрузил и загрузил свой шаблон сервера в удаленный репозиторий. Но мне интересно, если это безопасно, чтобы добавить nodes каталог для remote хранилище, так как оно содержит точный сервер passwords

Вот пример узла

{
  "environment":"production",
  "authorization": {
    "sudo": {
      // The password for the depliy user is set in data_bags/users/deploy.json
      // and should be generated using:
      // openssl passwd -1 "plaintextpassword"
      "users": ["deploy", "vagrant"]
    }
  },

  "vagrant" : {
    "exclusions" : [],
    "name" : "rails-postgres-redis1",
    "ip" : "192.168.50.4"
  },
  "rbenv":{
    "rubies": [
      "2.1.2"
    ],
    "global" : "2.1.2",
    "gems": {
      "2.1.2" : [
        {"name":"bundler"}
      ]
    }
  },
  "monit": {
    "notify_emails" : ["email@example.com"],
    "enable_emails" : false,
    "web_interface" : {
      // the plaintext monit username and password
      "allow" : ["your_username","your_password"]
    },
    "mailserver" : {
      "host" : "mailserver.example.com",
      "port" : "999",
      "username" : "your_username",
      "password" : "your_password",
      "hostname" : "the_hostname"
    }
  },
  "postgresql" : {
    "password" : {
      // this should be generated with:
      // openssl passwd -1 "plaintextpassword"
      // currently test
      "postgres" : "$1$mMK9HNoN$r42n7Q8fKsZabbknlT1Zt1"
    }
  },
  "run_list":
  [
    "role[server]",
    "role[nginx-server]",
    "role[postgres-server]",
    "role[rails-app]",
    "role[redis-server]",
  ]
}

Поскольку пароли видны, безопасно ли добавлять вот так?

Если он должен быть в gitignore, то на более позднем этапе, если мы клонируем из удаленного репозитория, нам нужно загрузить сервер с нуля, так как не существует никакого каталога узла, верно?

Есть ли лучший способ или я что-то здесь упускаю?

1 ответ

Решение

Вам не нужно копировать файлы json узла для начальной загрузки узла. Защищенные данные должны поступать из Chef Vault/Hashicorp Vault/ любого другого безопасного хранилища. Неконфиденциальные данные могут быть частью рецепта / рецепта оболочки / роли / среды / и т. Д., Которые могут храниться в хранилище. Если у вас действительно есть данные, относящиеся к одному узлу, вы можете передать их, используя -j во время процесса начальной загрузки.

Другие вопросы по тегам