Fantoche de erro 'Hash'; esperado ')' no padrão em /tmp/modules/apt/manifests/init.pp:6

1

Estou retomando um projeto usando o fantoche para instalar servidores. Nós temos nosso arquivo process.pp que funciona corretamente

Quando eu corro

puppet parser validate manifests/ikuwprocess.pp

Sem erro, o que acontece sempre

Mas no processo nós chamamos apt e eu recebo este erro:

Error: Syntax error at 'Hash'; expected ')' at /tmp/modules/apt/manifests/init.pp:6 on node ourserver.40qyqnbkn0mu3edhynn2jlebec.ax.internal.toto.net

O init.pp parece ser o arquivo intocado do fantoche que pode ser encontrado aqui: link

Mas quando eu executo o analisador, recebo o erro

puppet parser validate /tmp/modules/apt/manifests/init.pp
Error: Could not parse for environment production: Syntax error at 'Hash'; expected ')' at /tmp/modules/apt/manifests/init.pp:6

Eu não sei o que fazer ... Aqui minha versão do sistema operacional:

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.5 LTS"
NAME="Ubuntu"
VERSION="14.04.5 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.5 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"

E a versão do fantoche que estou usando

puppet --version
3.8.7

O que estou fazendo de errado com o que sinto falta?

Se precisar de mais informações, por favor, diga-me que vou fornecer rapidamente

[EDIT] Depois de uma recomendação eu tentei isso, mas ainda não está funcionando:

puppet module install puppetlabs-stdlib --version 4.21.0 
Notice: Preparing to install into /home/myaccount/.puppet/modules ... Notice: Created target directory /home/myaccount/.puppet/modules 
Notice: Downloading from https://forgeapi.puppetlabs.com ... 
Notice: Installing -- do not interrupt ... 
/home/myaccount/.puppet/modules 
└── puppetlabs-stdlib (v4.21.0)

[EDIT] Tentei migrar para a última versão do fantoche

wget -O - https://raw.githubusercontent.com/petems/puppet-install-shell/master/install_puppet_agent.sh | sudo sh

Reading package lists... Done 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  puppet-agent
0 upgraded, 1 newly installed, 0 to remove and 5 not upgraded.
Need to get 0 B/16.8 MB of archives.
After this operation, 91.3 MB of additional disk space will be used.
Selecting previously unselected package puppet-agent.
(Reading database ... 30718 files and directories currently installed.)
Preparing to unpack .../puppet-agent_5.3.3-1trusty_amd64.deb ...
Unpacking puppet-agent (5.3.3-1trusty) ...
Processing triggers for ureadahead (0.100.0-16) ...
Setting up puppet-agent (5.3.3-1trusty) ...

Mas quando tento chamar fantoche:

puppet --version
-bash: /usr/bin/puppet: No such file or directory

E nada chamado de marionete em /usr/bin/

    
por Rui 06.11.2017 / 18:30

2 respostas

1

O erro é causado pelo fato de você estar usando uma versão mais antiga do Puppet (3.X) que é EOL em dezembro de 2016 , e a versão mais recente do módulo Apt usa o novo Fantoche tipos de dados que são apenas Puppet 4+.

A correção mais fácil será atualizar para a versão mais recente do Puppet. Como o Ubuntu 14.04 upstream é uma versão mais antiga, eu recomendaria mudar para o repositório Puppet. Você pode fazer isso facilmente com um script que eu escrevi :

wget -O - https://raw.githubusercontent.com/petems/puppet-install-shell/master/install_puppet_agent.sh | sudo sh

Ou você pode configurar manualmente os repos para a atualização, com os documentos aqui: link

    
por 07.11.2017 / 12:06
0

Seu módulo puppetlabs / apt precisa de dependência puppetlabs / stdlib (veja também link ).

Adicione stdlib (ou seja, com puppet module install puppetlabs-stdlib --version 4.21.0 ) ao caminho do módulo do sistema.

    
por 06.11.2017 / 18:35