локали перед отбором в debian

Поскольку Вы имеете контроль над доменом, я думаю, что у Вас есть все основания использовать DNS для этого. Вот пара опций:

  • Выполните свой собственный DNS-сервер и запишите новое записи на зональный файл автоматически, когда пользователь подпишется. Когда клиент подписывается через Ваш веб-интерфейс, Вы называете Сценарий оболочки, который работает через SSH на Вашем DNS-сервере для записи записи в файл. Передача в переменных для домена клиента и на каком сервере Вы хотите их.

  • Или можно использовать Сервис DNS как www.zerigo.com и автоматизировать его через их API.

Сценарий был бы хотеть что-то как:

#!bin/sh
serverip=$1
customername=$2
cat > /etc/DNSSERVER/Zonefile <<-_EOF1_
IN  A   $serverip   $customername.ourdomain.com 
_EOF1_

Передача в переменных, когда Вы выполняете сценарий (которые собраны через форму на Вашем сайте на регистрацию):

./add_a_record.sh 73.203.218.41 <customername>

DNS был специально предназначен для обработки любого количества запросов, которые можно бросить в него...

2
задан 8 January 2013 в 17:33
2 ответа

Мне удалось создать политику cfengine3, аналогичную манифест @cosimo, и он, похоже, работает. Меня это устраивает, но я все еще считаю, что ошибка № 592216 еще не устранена, поэтому я могу передать еще одну в Debian.

Моя реализация cfengine использует тот факт, что /etc/locale.gen похоже, содержит все возможные локали, но закомментированы.

Вместо того, чтобы переписывать файл с нуля и, возможно, вносить ошибки, Я прошу cfengine раскомментировать локали, которые я хочу создать. Если языковой стандарт не указан, потому что он не поддерживается или я ошибся, ничего не происходит. Этот подход также упрощает ситуацию, поскольку нет необходимости записывать кодировку одновременно и : вы можете просто написать локаль и позволить cfengine раскомментировать все связанные кодировки для этой локали.

'nuff сказал :

body common control
{
      inputs => { "cfengine_stdlib.cf" } ;
      bundlesequence => {"test"} ;
}

bundle agent test
{
  vars:
      "locales"
    slist => { "da_DK.UTF-8", "de_DE.UTF-8", "en_US.UTF-8",
           "es_ES.UTF-8", "fr_FR.UTF-8", "it_IT.UTF-8",
           "nl_NL.UTF-8", "ru_RU.UTF-8", "sv_SE.UTF-8",
           "tr_TR.UTF-8", "id_ID.UTF-8", "nb_NO.UTF-8",
           "pl_PL.UTF-8", "vi_VN.TCVN"  },
    comment => "locales to generate" ;

  files:
      "/etc/locale.gen"
    edit_line => enable_locales(@(test.locales)),
    classes   => if_repaired("regenerate_locales"),
    comment   => "Enable locales, trigger locale-gen if needed" ;

  commands:
    regenerate_locales::
      "/usr/sbin/locale-gen"
    comment => "Regenerate locales when needed" ;

  reports:
    regenerate_locales::
      "Locales regenerated" ;
}


bundle edit_line enable_locales(locales)
{
  replace_patterns:
      "^#\s+($(locales).*)$"
    replace_with => uncomment ;
}
1
ответ дан 3 December 2019 в 11:50

Да, я столкнулся с той же проблемой, и после некоторой борьбы с ней я нашел обходной путь, который использует /etc/locale.gen .

I опубликовал марионеточный модуль для настройки локалей, которые мы обычно используем на наших серверах, то есть только en_US.UTF-8 :

https://github.com/cosimo/puppet-modules/blob/ master / locales / manifestests / init.pp

Вот он, встроенный:

class locales {

  package { "locales": 
    ensure => "latest",
  }

  file { "/etc/locale.gen":
    source => [
      "puppet:///locales/locale.gen.$fqdn",
      "puppet:///locales/locale.gen"
    ],
    owner => "root",
    group => "root",
    mode => 644,
    require => Package["locales"],
  }

  exec { "/usr/sbin/locale-gen":
    subscribe => File["/etc/locale.gen"],
    refreshonly => true,
    require => [ Package["locales"], File["/etc/locale.gen"] ]
  }

}

Даже если вы не используете puppet ;-), вы можете легко понять, что происходит. Вы просто создаете файл /etc/locale.gen со списком локалей, которые вы хотите создать, а затем запускаете / usr / sbin / locale-gen .

Вот это файл списка, который я использую как /etc/locale.gen :

# This file lists locales that you wish to have built. You can find a list
# of valid supported locales at /usr/share/i18n/SUPPORTED, and you can add
# user defined locales to /usr/local/share/i18n/SUPPORTED. If you change
# this file, you need to rerun locale-gen.

en_US.UTF-8 UTF-8
1
ответ дан 3 December 2019 в 11:50

Теги

Похожие вопросы