В настоящее время я пытаюсь выгрузить часть файловой марионетки, которую использует NGINX (как показано здесь http://www.masterzen.fr/2010/03/21/more-puppet-offloading/), однако у меня по-прежнему возникают ошибки 403 при поиске файлов и каталогов.
Одна вещь, которая исправила это, - это добавление "auth any" к первому определению в моем auth.conf, но, насколько мне известно, это полностью отключило бы проверку клиента?
Итак, я не передаю все необходимые заголовки с NGINX или что-то еще не так? Далее следуют файлы конфигурации.
/etc/puppet/puppet.conf
[main]
logdir = /var/log/puppet
rundir = /var/run/puppet
ssldir = $vardir/ssl
server = Puppet.xServ
pluginsync=false
external_nodes = /usr/sbin/external_nodes
node_terminus = exec
[master]
certname = puppet.xserv
[agent]
classfile = $vardir/classes.txt
localconfig = $vardir/localconfig
/etc/puppet/auth.conf
path ~ ^/catalog/([^/]+)$
method find
allow localhost
allow $1
path /certificate_revocation_list/ca
method find
allow *
path /report
method save
allow *
path /file
allow *
path /certificate/ca
auth no
method find
allow *
path /certificate/
auth no
method find
allow *
path /certificate_request
auth no
method find, save
allow *
path /
auth any
/etc/puppet/fileserver.conf
[modules]
allow *
/etc/nginx/sites.d/puppet.conf
server {
listen 8140;
ssl on;
ssl_session_timeout 5m;
ssl_certificate /var/lib/puppet/ssl/certs/puppet.xserv.pem;
ssl_certificate_key /var/lib/puppet/ssl/private_keys/puppet.xserv.pem;
ssl_client_certificate /var/lib/puppet/ssl/ca/ca_crt.pem;
ssl_verify_client optional;
root /etc/puppet;
# make sure we serve everything
# as raw
types { }
default_type application/x-raw;
# ask the puppetmaster for everything else
location / {
proxy_pass https://127.0.0.1:8141;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Client-Verify $ssl_client_verify;
proxy_set_header X-SSL-Subject $ssl_client_s_dn;
proxy_set_header X-SSL-Issuer $ssl_client_i_dn;
proxy_buffer_size 16k;
proxy_buffers 8 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_read_timeout 65;
}
}
Марионеточная аутентификация основана на IP-адресе источника, а не на том, что говорится в заголовочном файле. В конце концов, файлы заголовков легко подделать. Я не знаю, можно ли настроить Puppet для получения проверяемого IP-адреса из файла заголовка.
Кажется, у меня была ошибка в моей конфигурации, я скопировал рабочую конфигурацию от кого-то другого, и она начала работать мгновенно, и я также переключился на Unicorn, так что, возможно, также придется что-то с ним делать.