Автор Тема: puppet / Управление клиентами  (Прочитано 4017 раз)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 144
    • Email
Re: puppet / Управление клиентами
« Ответ #30 : 04.04.2016 12:27:01 »
Комплексное обновление системы (без ядра)
Может не сработать 'apt-get install -fy', если обновление было оборвано...
Возможно совпало так, но удалённо лазил на компе и через puppet вручную запустил синхронизацию:
puppetd -t --debug, началось обновление системы и в этот момент компьютер выключили! После этого машина нормально запускается, но через ssh не подключается:
$ ssh user@pc01
user@pc01's password:
Connection closed by 192.168.1.33
, через puppet (на сервере в логе):
Apr  4 13:34:29 server puppet-master[6074]: Invalid pattern pc01.localdo^A
То есть полечить как-то удалённо не получается.
При этом локально, запущенный вручную, fix сработал.
Нужны варианты обхода на будущее...

PS. Мораль: нефиг лазить по чужим компам :)
« Последнее редактирование: 04.04.2016 12:29:09 от berkut_174 »
Сноси Винду, переходи на Линукс ! :)

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 246
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: puppet / Управление клиентами
« Ответ #31 : 04.04.2016 13:54:07 »
Может не сработать 'apt-get install -fy', если обновление было оборвано...
Оно и локально после этого может не сработать, если было оборвано, когда новая версия пакета уже установилась, а старая не успела удалиться (из базы rpm).

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 144
    • Email
Re: puppet / Управление клиентами
« Ответ #32 : 04.04.2016 14:30:39 »
Оно и локально после этого может не сработать, если было оборвано, когда новая версия пакета уже установилась, а старая не успела удалиться (из базы rpm)
Возможно, в этот раз так и было, оборвалось на установке Firefox, поэтому было две версии установлено.
НО fix сработал, просто в конце каждой команды apt-get писалось, что в системе два одинаковых пакета разных версий.
Похоже нужно более кардинальное решение...
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 144
    • Email
Re: puppet / Управление клиентами
« Ответ #33 : 14.04.2016 10:09:40 »
Замена LibreOffice4 из p7 на статичные сборки с оф. сайта

class libre-stable {

    $librelatest = 'curl -s ftp://server.firma/libreoffice/latest'
    $librelatestshort = 'curl -s ftp://server.firma/libreoffice/latest|cut -c -3'
    $loginstall = '/var/log/firma-install.log'
    $logremove = '/var/log/firma-remove.log'

    exec { 'libre-remove' :
    path => '/usr/bin:/usr/sbin:/bin:/sbin',
    provider => shell,
    command => "latest=`$librelatestshort`; old=`rpm -qa --qf '%{version}\n' libreoffice[0-9].[0-9]|sed \"/^\$latest/ d; s|^\\(.\\{2\\}.\\).*|libreoffice\\1\\* |g\"|awk '! a[\$0]++'|tr -d '\n'`; apt-get -y remove \$old LibreOffice4-{common,mimetypes} >>$logremove 2>&1",
    onlyif => "[ $(rpm -qa libreoffice`$librelatestshort`*|wc -l) -gt 0 ] && [ $(rpm -qa libreoffice* LibreOffice4*|egrep -v `$librelatestshort`|wc -l) -gt 0 ] && [ $(ps -A|grep soffice.bin|wc -l) -eq 0 ]",
    require => Exec['libre-install'],
    }

    exec { 'libre-install' :
    path => '/usr/bin:/usr/sbin:/bin:/sbin',
    provider => shell,
    command => "latest=`$librelatest`; short=`$librelatestshort`; mkdir /tmp/\$latest; wget -qO /tmp/\$latest/rpms.tar.gz ftp://server.firma/libreoffice/\$latest/`arch`/rpms.tar.gz; tar -xzf /tmp/\$latest/rpms.tar.gz -C /tmp/\$latest/; rpm -Uvh /tmp/\$latest/*.rpm >>$loginstall 2>&1; rm -rf /tmp/\$latest/",
    onlyif => "[ $(rpm -qa libreoffice`$librelatestshort`*|wc -l) -eq 0 ] || [ $(rpm -q --qf '%{version}' libreoffice`$librelatestshort`) != $($librelatest) ]",
    }

}


Манифест может работать только с двумя установленными версиями LO, например, libreoffice4.4 и libreoffice5.0, если в системе, по какой-то причине, будет установлено более двух версии LO, команда будет выполняться некорректно. Чтобы это исправить, нужно дорабатывать наполнение переменной $old:
old=`rpm -qa --qf '%{version},' libreoffice[0-9].[0-9]|sed \"s|\,*\$latest[^\,]*\,*||g\"|cut -c -3|sed 's|\([0-9]\.[0-9]\)|libreoffice\1\*|'`чтобы в неё попадали все установленные версии LO кроме latest.
Поправил.

Манифест выполняется в следующем порядке:
- устанавливается latest-версия LO (с локального ftp);
- удаляются старые установленные версии LO.
« Последнее редактирование: 21.04.2016 13:54:46 от berkut_174 »
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 144
    • Email
Re: puppet / Управление клиентами
« Ответ #34 : 14.04.2016 19:10:26 »
нужно дорабатывать наполнение переменной $old
old=`rpm -qa --qf '%{version},' libreoffice[0-9].[0-9]|sed \"s|\,*\$latest[^\,]*\,*||g\"|cut -c -3|sed 's|\([0-9]\.[0-9]\)|libreoffice\1\*|'`
Вот так должно убирать все, кроме LO, указанного как latest:
old=`rpm -qa --qf '%{version}\n' libreoffice[0-9].[0-9]|sed \"/^\$latest/ d; s|^\(.\{2\}.\).*|libreoffice\1\* |g\"|awk '! a[\$0]++'|tr -d '\n'`
PS. Приветствуются предложения по оптимизации команд.
« Последнее редактирование: 15.04.2016 07:57:40 от berkut_174 »
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 144
    • Email
Re: puppet / Управление клиентами
« Ответ #35 : 21.04.2016 13:53:58 »
Замена LibreOffice4 из p7 на статичные сборки с оф. сайта
Проверил на деле, серьёзных проблем не обнаружено.
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 144
    • Email
Re: puppet / Управление клиентами
« Ответ #36 : 01.08.2016 11:33:37 »
error: hp-plugin should not be run as root/superuser
Починили в:
hplip-3.16.7-alt0.M70P.1Больше неактуально https://bugzilla.altlinux.org/show_bug.cgi?id=31824.
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 144
    • Email
Re: puppet / Управление клиентами
« Ответ #37 : 01.08.2016 11:37:10 »
Плохо, что puppet не работает через прокси... так что вот так у меня не обновляет всё равно:
yes \ | hp-plugin -iХотя раньше вроде бы работало... наверно какой-то адрес с https теперь стал использоваться.
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 144
    • Email
Re: puppet / Управление клиентами
« Ответ #38 : 26.03.2017 12:51:28 »
Продолжу...

Никто не пробовал использовать в качестве master версию из p8 (4.8.1), а в качестве клиента - версию из p7 (2.7.21). Что-то у меня не получается... неужели с переходом на p8 придётся заново создавать сертификаты ? И у меня не получается к master применить даже примитивный манифест, такое чувство, что вообще не работает...
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 144
    • Email
Re: puppet / Управление клиентами
« Ответ #39 : 26.03.2017 14:29:37 »
такое чувство, что вообще не работает...
Блин, серьёзно они там всё поменяли... стало намного сложнее-мудрёнее... но получилось выполнить-таки мой манифест!

Похоже заставить master работать с настолько старой версией agent не получится...
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 144
    • Email
Re: puppet / Управление клиентами
« Ответ #40 : 13.07.2017 09:29:26 »
Ковыряюсь с puppet в p8...

Не могу перенести файл с puppet на клиента, делаю:

На сервере файл лежит по адресу /etc/puppet/modules/files/test/test

file { 'test' :
    path => '/tmp/test',
    source => 'puppet:///modules/test/test',
    force => true,
}

Получаю ошибку на клиенте:
Error: /Stage[main]/Test/File[test]: Could not evaluate: Could not retrieve information from environment production source(s) puppet:///modules/test/test

Что неправильно, не могу понять, читаю доки https://docs.puppet.com/puppet/4.10/types/file.html#file-attribute-source, ну всё верно, почему не работает не пойму...

Подскажите!
Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 144
    • Email
Re: puppet / Управление клиентами
« Ответ #41 : 13.07.2017 09:34:26 »
Отбой, файл нужно было положить так: /etc/puppet/modules/test/files/test
Сноси Винду, переходи на Линукс ! :)