Недавно установленная среда Puppet Environment не работает, CSR не соответствует открытому ключу

Я хочу поиграть с марионеткой, поэтому я создал небольшую тестовую среду, состоящую из 4 виртуальных машин

  • pfSense: Router
  • Windows Server 2012 R2: DNS, DHCP
  • Ubuntu Server 16.04: Puppetmaster
  • Ubuntu Server 16.04: Puppet agent

DNS настроен правильно, он правильно отвечает на все прямые и обратные запросы.

Вот набор команд, которые я выполнил на обоих ubuntu vms (базовая конфигурация)

sudo dpkg-reconfigure keyboard-configuration
sudo apt-get install -y vim openssh-server ntp
sudo dpkg-reconfigure tzdata

vi /etc/hostname (set to puppet / puppetclient)
sudo reboot now

wget https://apt.puppetlabs.com/puppetlabs-release-pc1-xenial.deb
sudo dpkg -i puppetlabs-release-pc1-xenial.deb
sudo apt-get update

А затем на главном устройстве:

sudo apt-get -y install puppetserver
sudo /opt/puppetlabs/bin/puppet resource service puppetserver ensure=running enable=true
sudo service puppetserver restart

Служба puppetserver-service работает нормально (после назначения 6 ГБ ОЗУ виртуальной машине;))

На клиенте:

sudo apt-get install puppet-agent
sudo /opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true

На клиенте, Затем я делаю:

puppet agent --server puppet.puppet.intra --waitforcert 60 --test

На это отвечает

Error: Could not request certificate: The CSR retrieved from the master does not match the agent's public key.
CSR fingerprint: 82:F5:08:CC:98:8A:D1:8F:EC:3D:B0:F7:5B:EB:43:FC:FC:0D:95:30:E8:6F:7F:81:9E:1B:02:CB:A4:01:0E:50
CSR public key: Public-Key: (4096 bit)
Modulus:
    ...
Exponent: 65537 (0x10001)

Agent public key: Public-Key: (4096 bit)
Modulus:
    ...
Exponent: 65537 (0x10001)

To fix this, remove the CSR from both the master and the agent and then start a puppet run, which will automatically regenerate a CSR.
On the master:
  puppet cert clean puppetclient.puppet.intra
On the agent:
  1a. On most platforms: find /home/administrator/.puppetlabs/etc/puppet/ssl -name puppetclient.puppet.intra.pem -delete
  1b. On Windows: del "\home\administrator\.puppetlabs\etc\puppet\ssl\certs\puppetclient.puppet.intra.pem" /f
  2. puppet agent -t

Конечно, я выполнил предложенные шаги по устранению неполадок, но безрезультатно. Далее я проверил:

HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ WindowsUpdate \ Auto Update \ Results \ Install

Кто-нибудь знает эквивалентный раздел реестра, в котором указаны дата / время последней успешной установки Центра обновления Windows? Или, может быть, другой метод запроса этого значения?

Я провел часы в поисковой системе, но ничего не нашел. Ближайший ключ реестра, который я могу найти, это:

HKLM \ SOFTWARE \ Policies \ Microsoft \ Windows \ WindowsUpdate \ AU

Однако в нем нет ключа для даты и времени последней успешной установки.

5
задан 11 March 2017 в 13:33
3 ответа

Протестировано, и находка этого парня сработала:

Get-WmiObject -Class win32_reliabilityRecords -filter "sourcename = 'Microsoft-
Windows-WindowsUpdateClient'" -ErrorAction SilentlyContinue |
select @{LABEL = "date";EXPRESSION = {$_.ConvertToDateTime($_.timegenerated)}}, 
@{LABEL = 'Update';EXPRESSION = {$_.message}} |
FT -AutoSize -Wrap

Дает вам хорошее резюме:

date                 Update
----                 ------
8/18/2017 8:39:51 AM Installation Successful: Windows successfully installed 
the following update: 2017-08 Cumulative Update for Windows Server 2016 for 
x64-based Systems (KB4034658)
...

Конечно, вы можете просто вынуть описание и заголовки, если вам просто нужна сама дата.

https://www.experts-exchange.com/questions/28713293/How-to-get-last-success-date-time-of-Windows-Update-on-Windows-10.html

https: //blogs.technet.microsoft.com/heyscriptingguy/2011/08/22/use-powershell-to-easily-find-information-about-hotfixes/

1
ответ дан 3 December 2019 в 02:02

Вы можете использовать журнал событий установки. Что-то вроде этого?

Get-WinEvent -LogName Setup | where{$_.message -match "success"} | select -First 1

Обычно я проверяю недавно установленные события следующим образом:

Get-WinEvent -LogName Setup -MaxEvents 5 | Format-Table Machinename,Timecreated,Message -A -Wr

Я тестировал, и он работает и в 2016 году.

0
ответ дан 3 December 2019 в 02:02

Mwen itilize:

    Invoke-Command -ComputerName  $ComputerName -ScriptBlock { (New-Object -com "Microsoft.Update.AutoUpdate").Results.LastInstallationSuccessDate} -ErrorAction SilentlyContinue
0
ответ дан 3 December 2019 в 02:02

Теги

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