compilar o shell nginx falha do provedor de salt

1

Eu tenho um provedor de salt que está chamando um script de shell para compilar o Nginx com alguns módulos que são necessários. Esta é a chamada para o script no .sls :

nginx:
#  pkg.installed:
#    - name: nginx
  file.directory:
    - name: /src/
    - user: root
    - group: root
    - mode: 644
  cmd.run:
    - name: /srv/salt/config/nginx/compiler.sh | bash
    - cwd: /
    - require:
      - pkg: nginx-compiler-base

Portanto, é /srv/salt/config/nginx/compiler.sh | bash que é executado, o que é iniciado. A execução do script é:

#!/bin/bash
cd ../../../../
cd /src/

nginxVersion="1.5.5" # set the value here from nginx website
wget http://nginx.org/download/nginx-$nginxVersion.tar.gz
tar -xzf nginx-$nginxVersion.tar.gz
#rm nginx # removes the soft link
ln -sf nginx-$nginxVersion nginx

cd nginx

    ./configure --with-http_auth_request_module \
    --with-http_gzip_static_module        \
    --with-http_stub_status_module        \
    --with-http_ssl_module                \
    --with-pcre                           \
    --with-file-aio                       \
    --with-http_realip_module             \
    --without-http_scgi_module            \
    --without-http_uwsgi_module           \
    --without-http_fastcgi_module

make
make install

O que chega à parte sem destino. Depois que eu recebo isso como a mensagem de saída e falha:

Se eu ssh no servidor, então su , posso executar cada linha no script e isso funciona. Não tenho certeza porque está falhando quando o provisionador está falhando.

    
por jeremy.bass 22.12.2013 / 01:30

1 resposta

1

então parece que a causa foi que eu estava usando | bash quando eu estava chamando o script. Em outras palavras, name: /srv/salt/config/nginx/compiler.sh | bash deveria ter sido name: /srv/salt/config/nginx/compiler.sh e então o sal .sls deveria ter sido:

# Set Nginx to run in levels 2345.
nginx:
  file.directory:
    - name: /src/
    - user: root
    - group: root
    - mode: 644
  cmd.run:
    - name: /srv/salt/config/nginx/compiler.sh
    - cwd: /
    - require:
      - pkg: nginx-compiler-base

e, em seguida, o arquivo que eu usei:

#!/bin/bash
cd /src

nginxVersion="1.5.7" # set the value here from nginx website
wget -N http://nginx.org/download/nginx-$nginxVersion.tar.gz
tar -xzf nginx-$nginxVersion.tar.gz
ln -sf nginx-$nginxVersion nginx

cd /src/nginx

#mkdir /tmp/nginx-modules
#cd /tmp/nginx-modules
#wget https://github.com/agentzh/headers-more-nginx-module/archive/v0.19.tar.gz
#tar -xzvf v0.19.tar.gz 

./configure --with-http_auth_request_module --with-http_dav_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_ssl_module --with-pcre --with-file-aio --with-ipv6 --with-http_realip_module --without-http_scgi_module --without-http_uwsgi_module

#\
#--add-module=/tmp/nginx-modules/headers-more-nginx-module-0.19 \

make
make install

executou e instalou como esperado. Espero que isso economize alguém algum tempo.

    
por 22.12.2013 / 04:46