среда, 5 ноября 2014 г.

Ruby как отметка качества.

Развлекаясь тут с coreos, пришел к случаю, когда хочется использовать много хостов для экспериментов — тысячи их!

Digital Ocean не дает столько дроплетов создавать без согласования,а платить за Amazon накладно.

Ну собрал парочку железяк на старых, выведенных из работы dell-ах.

Ну не руками же всё это стартовать, заюзал vagrant.

И не могу не пожаловаться.
Ну почему, почему у всего рубишного такие родовые травмы?
Я, как человек измученный puppet по-самое-не-могу, вроде бы уже привычку даже выработал, но нет.

Ну ладно, писать конфиги на птичьем языке типа:
  (1..NUM_CLIENT).each do |i|
   config.vm.define "coreos-#{i}" do |coreos|
    coreos.vm.box = "yungsang/coreos"

еще можно привыкнуть.

Но почему шаг вправо, шаг влево. Всё. Посыпалось.

Живой пример, захотелось поменять virtualbox на libvirtd.
Простой же случай то?

Да, но нужно конвертировать box.
Оно есть, типа, но не работает типа с мая, ну ладно, может действительно не надо никому.

В конце концов это не срок.



Посмотрим к примеру на горячо любимый puppet:

Вот этот вот баг, жив с января 2013

Рекомендуемый совет: поставить ca_root_nss, он был бы правильным,
если б не руби конечно. Все в системе используют сертификаты оттуда, но для особенных, нужно положить его в особое место:


И вот как то оно всегда так. Оно работает ровно до того момента как тебе нужен шаг в сторону. И тут ты уже остаешься один, вся надежда на удачу.

Ну вот тот же vagrant опять.
Вот я скажем обычный не покалеченный рубями человек.
Как мне написать такое:

    discovery.vm.provision :file, source: "./discovery", destination: "/tmp/vagrantfile-user-data"

    discovery.vm.provision :shell do |sh|
      sh.privileged = true
      sh.inline = <<-EOT
        mv /tmp/vagrantfile-user-data /var/lib/coreos-vagrant/
      EOT
    end

просто для того что бы скопировать файлик.

Ну конечно это work-around такой, из за недостатка привилегий в  provision :file.

Но опыт того же puppet показывает, что с такими подходами очень быстро весь твой манифест превращается в один сплошной work-around, лучшее что можно сделать с  котором — обоссать и сжечь.

Ну что мешало ключик :privileged добавить? Всё равно же добавили, только в другое место.


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