
Andor
06.09.2018
08:59:37

Freddie
06.09.2018
09:02:05
Я епп рисовал)
Всё равно где-нибудь наверняка налажал, конечно

Единорожа
06.09.2018
09:26:30
Все решилось слишком просто

Google

Единорожа
06.09.2018
09:26:41
<% @mysql_servers.each do |server| -%>
{address="<%= server['address'] %>", port=<%= server['port'] %> , hostgroup= <%= server['hostgroup'] %>},
<% end -%>

Freddie
06.09.2018
09:28:05
одна проблема (а может нет) - висяцая запятая на последней строке останется

Единорожа
06.09.2018
09:28:26
вот блин
и да это syntax error


Freddie
06.09.2018
09:36:08
можно мапой, а потом .join(',')
[1] pry(main)> servers = []
=> []
[2] pry(main)> servers << {'address' => '192.168.0.1', 'port' => 3306, 'hostgroup' => 0}
=> [{"address"=>"192.168.0.1", "port"=>3306, "hostgroup"=>0}]
[3] pry(main)> servers << {'address' => '192.168.0.2', 'port' => 3306, 'hostgroup' => 0}
=> [{"address"=>"192.168.0.1", "port"=>3306, "hostgroup"=>0},
{"address"=>"192.168.0.2", "port"=>3306, "hostgroup"=>0}]
[4] pry(main)> puts servers.map {|s| "{ address=\"#{s['address']}\", port=#{s['port']}, hostgroup=#{s['hostgroup']} }" }.join(",\n")
{ address="192.168.0.1", port=3306, hostgroup=0 },
{ address="192.168.0.2", port=3306, hostgroup=0 }
=> nil
вот так примерно на рубях будет, 1-3 - это я массив набиваю, хиерой прикидываюсь, а 4 переводится на future parser один в один
можно написать функцию, хоть на рубях, хоть на паппете, если у тебя достаточно новый, и темплейт вообще не понадобится, можно будет просто content => proxysql::genconfig($servers)
ну или как ты её там назовёшь


Andor
06.09.2018
10:04:45
писать функции на пупете - торт

Единорожа
06.09.2018
12:53:43
[1] pry(main)> servers = []
=> []
[2] pry(main)> servers << {'address' => '192.168.0.1', 'port' => 3306, 'hostgroup' => 0}
=> [{"address"=>"192.168.0.1", "port"=>3306, "hostgroup"=>0}]
[3] pry(main)> servers << {'address' => '192.168.0.2', 'port' => 3306, 'hostgroup' => 0}
=> [{"address"=>"192.168.0.1", "port"=>3306, "hostgroup"=>0},
{"address"=>"192.168.0.2", "port"=>3306, "hostgroup"=>0}]
[4] pry(main)> puts servers.map {|s| "{ address=\"#{s['address']}\", port=#{s['port']}, hostgroup=#{s['hostgroup']} }" }.join(",\n")
{ address="192.168.0.1", port=3306, hostgroup=0 },
{ address="192.168.0.2", port=3306, hostgroup=0 }
=> nil
Спасибо помогло)


Max
07.09.2018
21:30:02
Итак … Апдейт за создание фолдеров или юзеров с фолдерами внутри класса… Нашел другой класс, отвечающий за юзера и группы. Все еще предстоит работа по переписке, так как soe оказался “костыль”, вместо “для всех”.
Вопрос к знотокам - как вы относитесь к “виртуал” ? не встречал даной реализации в продакшыне - только в книжках и не факт что они работают))) но все же - стоит ли писать виртуал клас (юзера, группы и тд и тп) или это что-то олдскульное ? (ведь начиналось все с рр файла только …)
Тема или топик был о редефайне хом директории внутри 2 классов, которые просто должны создать рут фоллер).
Пример:
/opt/some_schit/grafana
/opt/some_schit/here_your_ads
Где /opt/some/schit/ должен создаваться как для grafana так и here_your_ads.
Повторюсь - если описать ресурс для обоих класов и задефайнить для разных серверов - все будет работать, но если использовать 1 сервер для обоих ролей-профайлов - папет выругает за ре-декларацию точки входа.


Andor
07.09.2018
21:43:48
что "виртуал"?

Google

ptchol
08.09.2018
13:37:19
Вероятно речь о виртуал ресурсах, которые в случае реалайзов позволяли избегать дупликейт декларейшн. Имхо сейчас это нужно решать хиерой и правильной компоновкой содержимого классов

Xeniya MTS
08.09.2018
20:11:53
в тебе умер Евангелист Докера, птчёл
ну правда :(

Andor
08.09.2018
20:43:25
Вроде не умер, ему же предлагают в маркетологи докеров пойти

ptchol
08.09.2018
21:00:06

Mikhail
11.09.2018
08:24:21
Можно ли вычислять факт только для определенной группы серверов?

Andor
11.09.2018
08:24:46
давай подробнее кейс

Freddie
11.09.2018
08:25:22
у фактов есть "confinement"
но не уверен, что тебе это нужно здесь. зачем ты хочешь НЕ вычислять?

Mikhail
11.09.2018
08:26:31
потому серверов у меня 1к, а нужен он на 8

Andor
11.09.2018
08:26:47
а на других мешать будет?

Mikhail
11.09.2018
08:27:07
ну смысл греть бесполезно проц

Freddie
11.09.2018
08:27:25
а что, прямо греть?

Andor
11.09.2018
08:27:30
может ты ещё остальные факты хочешь отключить, которые не используешь?

Freddie
11.09.2018
08:27:42
а как ты знаешь, на каких "надо", а на каких "нет"?

Mikhail
11.09.2018
08:27:54
ну нет, но тут пара тактов, там десяток и вот тормозит все!

Freddie
11.09.2018
08:28:12
ну не об паппет раз в 15 минут же

Mikhail
11.09.2018
08:28:14

Freddie
11.09.2018
08:28:51
тут конфликтик получается: роли - это что ТЫ знаешь о ноде, факты - это что сама нода про СЕБЯ знает

Google

Freddie
11.09.2018
08:29:00
смешивать некруто

Mikhail
11.09.2018
08:31:34
у меня этап Info: Loading facts выполняется 15 секунд, бесит )

Freddie
11.09.2018
08:33:36
это более или менее нормально. с -d можно увидеть, обо что именно тормозит. скорее всего не об твоё
хотя нет, у меня в пределах двух секунд
ну это в домашней песочнице. боевое - около 7 секунд, там фактов больше раз в пять
а паппет у тебя какой? cfacter намного быстрее, старый чисто рубёвый был примерно как у тебя, кажется

Mikhail
11.09.2018
08:36:32
Debug: Facter: resolving Xen facts. вот на чем висит
4 паппет

Freddie
11.09.2018
08:36:58
да, должен быть новый фактер
ну и видишь, не об твоё тормозит. а что, облако? и таки прямо xen?

Mikhail
11.09.2018
08:38:02
ну мое еще не впилено. Я хз где у нас xen, а вот видимо на какой-то машинке есть и теперь на остальных тормозит

Freddie
11.09.2018
08:38:53
это встроенные факты, они везде чекаются
в исходники лезть совсем не хочется

Andor
11.09.2018
08:39:20

Freddie
11.09.2018
08:39:40
https://github.com/puppetlabs/facter где-то здесь :)

Mikhail
11.09.2018
08:40:10

Freddie
11.09.2018
08:40:17
да
но xen - в "ядре": https://github.com/puppetlabs/facter/blob/master/lib/src/facts/resolvers/xen_resolver.cc

Andor
11.09.2018
08:43:16
вопрос почему он тормозит

Freddie
11.09.2018
08:43:25
насколько я вижу, должно туда попадать только если есть /usr/bin/xl или /usr/bin/xm

Google

Andor
11.09.2018
08:43:26
@azalio а facter xen тоже тормозит?

Mikhail
11.09.2018
08:43:44
а вот нет, не тормозит

Andor
11.09.2018
08:44:20
а puppet facts?

Mikhail
11.09.2018
08:44:27
Debug: Facter: resolving Xen facts.
Debug: Dynamically-bound server lookup failed, falling back to server setting
Debug: Dynamically-bound port lookup failed; falling back to masterport setting
Debug: Failed to load library 'msgpack' for feature 'msgpack'
Debug: Puppet::Network::Format[msgpack]: feature msgpack is missing
Debug: catalog supports formats: pson yaml dot binary
Debug: Using cached connection for https://rbpuppet.i:8140
вот тут затыкается

Andor
11.09.2018
08:44:52
а следующая запись какая в логе?

Freddie
11.09.2018
08:45:13
это уже не факты, тут он ждёт каталога от мастера

Andor
11.09.2018
08:45:28
угу, это уже после фактов

Freddie
11.09.2018
08:45:30
15 секунд - это норм, и он просто ждёт, а не проц греет

Mikhail
11.09.2018
08:45:34
Debug: Facter: resolving Xen facts.
Debug: Dynamically-bound server lookup failed, falling back to server setting
Debug: Dynamically-bound port lookup failed; falling back to masterport setting
Debug: Failed to load library 'msgpack' for feature 'msgpack'
Debug: Puppet::Network::Format[msgpack]: feature msgpack is missing
Debug: catalog supports formats: pson yaml dot binary
Debug: Using cached connection for https://rbpuppet.i:8140
Debug: Caching connection for https://rbpuppet.i:8140
Debug: Evicting cache entry for environment 'production'
Debug: Caching environment 'production' (ttl = 0 sec)

Freddie
11.09.2018
08:46:01
можешь в логе на мастере это увидеть, grep compiled должно быть достаточно

Andor
11.09.2018
08:46:22
а мастер рубёвый или жрубёвый?
снимай метрики с мастера!

Mikhail
11.09.2018
08:46:43
какие-то сложные вопросы пошли!!!

Freddie
11.09.2018
08:46:49
четвёртый паппет, не будет там рубёвого без ебли (но тогда бы вопросов не было)
puppetserver же у тебя?

Andor
11.09.2018
08:47:17
короче сервер у тебя генерит каталог по 15 секунд, а не факты тормозят

Mikhail
11.09.2018
08:47:35
puppet 3397651 204 54.1 43933348 35656448 ? Sl Aug09 96578:51 /usr/bin/java -Xms32g -Xmx32g -Djava.security.egd=/dev/urandom -XX:OnOutOfMemoryError=kill -9 %p -cp /opt/puppetlabs/server/apps/puppetserver//puppet-server-release.jar clojure.main -m puppetlabs.trapperkeeper.main --config /etc/puppetlabs/puppetserver/conf.d --bootstrap-config /etc/puppetlabs/puppetserver/services.d/,/opt/puppetlabs/server/apps/puppetserver/config/services.d/ --restart-file /opt/puppetlabs/server/data/puppetserver/restartcounter

Freddie
11.09.2018
08:47:44
ага, оно

Andor
11.09.2018
08:47:49
жрубёвый

Google

Andor
11.09.2018
08:47:56
а тредов сколько в конфиге выставлено?

Freddie
11.09.2018
08:47:56
там ява, с него можно метрики снимать прямо по хттп
-Xms32g -Xmx32g щедро :)

Mikhail
11.09.2018
08:48:41

Andor
11.09.2018
08:48:49
ну погрепай по конфигу

Freddie
11.09.2018
08:48:51
если оно воркает нормально - збс, но я в итоге занижал эти штуки. хотел на жирных тачках запускать по десятку маленьких инстансов, но забил

Andor
11.09.2018
08:48:52
я не помню отсюда
кстати сделай лучше 31гб

Mikhail
11.09.2018
08:49:03
root@rbpuppet1: ~/rbpuppet 15# less /etc/puppetlabs/puppetserver/conf.d/puppetserver.conf | grep threa
root@rbpuppet1: ~/rbpuppet 16#

Freddie
11.09.2018
08:49:03
он по дефолту закомменчен. ищи instances

Andor
11.09.2018
08:49:17
жава с 31гб теоретически лучше работает чем с 32гб

Mikhail
11.09.2018
08:49:26
max-active-instances: 12

Freddie
11.09.2018
08:49:39
норм, а ядер?

Andor
11.09.2018
08:49:47
ну ты сначала в логе посмотри, сколько времени комилятся каталоги

Mikhail
11.09.2018
08:49:53
16

Freddie
11.09.2018
08:49:56
норм

Mikhail
11.09.2018
08:51:11
2018-09-11 11:44:12,785 INFO [qtp1704771126-32215] [puppetserver] Puppet Compiled catalog for rbkube-node-dp02 in environment production in 16.00 seconds
2018-09-11 11:45:20,419 INFO [qtp1704771126-32231] [puppetserver] Puppet Compiled catalog for rbkube-node-dp02 in environment production in 15.27 seconds

Freddie
11.09.2018
08:51:16
если тебе кажется, что медленно (на самом деле вполне ок), смотри на кэши (параметр environment_timeout в environment.conf или puppet.conf), но их надо будет сбрасывать при деплое

Andor
11.09.2018
08:51:21
ага
вот оно и пишет про 15 секунд