Compare commits

..

6 commits

1261 changed files with 14422 additions and 84661 deletions

View file

@ -1,64 +0,0 @@
pipeline {
agent { label 'docker' }
environment {
ROLES_VERSION = "${env.GIT_COMMIT}"
}
stages {
stage('Anible Lint') {
agent {
docker {
image 'evolix/ansible-lint:latest'
}
}
steps {
script {
sh 'for role_dir in ./*/; do HOME=$WORKSPACE_TMP ansible-lint -p $role_dir || : ; done'
recordIssues(tools: [ansibleLint()])
}
}
}
stage('Build tagged docker image') {
when {
buildingTag()
}
steps {
script {
def im = docker.build("evolix/ansible-roles:build${env.BUILD_ID}")
im.inside {
sh 'echo Test needed'
}
def version = TAG_NAME
def versions = version.split('\\.')
def major = versions[0]
def minor = versions[0] + '.' + versions[1]
def patch = version.trim()
docker.withRegistry('', 'hub.docker') {
im.push(major)
im.push(minor)
im.push(patch)
}
}
}
}
stage('Build latest docker image') {
when {
branch 'unstable'
}
steps {
script {
def im = docker.build("evolix/ansible-roles:build${env.BUILD_ID}")
im.inside {
sh 'echo Test needed'
}
docker.withRegistry('', 'hub.docker') {
im.push('latest')
}
}
}
}
}
}

2
.gitignore vendored
View file

@ -1,5 +1,3 @@
.kitchen/
.kateproject.d
.vagrant/
*.swp
.vscode

View file

@ -1,4 +0,0 @@
{
"MD013": false,
"MD024": false
}

View file

@ -1,8 +0,0 @@
{
"files.associations": {
"*.yml": "ansible",
"*.yaml": "ansible"
},
"yaml.format.enable": false,
"ansible.python.interpreterPath": "/bin/python"
}

View file

@ -1,1637 +0,0 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
This project does not follow semantic versioning.
The **major** part of the version is the year
The **minor** part is the month
The **patch** part is incremented if multiple releases happen the same month
## [Unreleased]
### Added
### Changed
### Fixed
### Removed
### Security
## [24.04] 2024-04-30
### Added
proftpd: optional configuration of IP whitelists per groups of users
### Changed
* autosysadmin-agent: upstream release 24.03.2
* evobackup-client: replace non-functional role with install tasks
* evobackup-client: upstream release 24.04.1
* evolinux-base: Add new variable to disable global customisation of bash config
* evolinux-base: Disable logcheck monitoring of journald only if journald.logfiles exists
* evolinux-users: Add sudo mvcli for nagios user
* haproxy: support bookworm for backport packages
* nrpe: !disk1 exclude filesystem type overlay
* postfix/amavis: max servers is now 3 (previously 2)
* roundcube: Use /var/log/roundcube directly
* vrrpd: configure and restart minifirewall before starting VRRP
* vrrpd: configure minifirewall with blocks instead of lines
### Fixed
* certbot: Fix HAPEE renewal hook
* certbot: Fix HAProxy renewal hook
* evolinux-base/logcheck: fix conf patch, journal check was not disabled when asked
* fail2ban: SQLite purge script didn't vacuum as expected + error when vacuum cannot be done
* keepalived: Fix tasks that use file instead of copy
* memcached: Fix conditions not properly writen (installation was always in multi-instance mode)
* nagios-nrpe: create /etc/bash_completion.d if missing
* openvpn: install packages manually, because openbsd_pkg module is broken since OpenBSD 7.4 with the version of Ansible we currently use
* packweb: fix old bug (2017!) .orig file created by module patch and taken in account by ProFTPd
* redis: replace inline argument with environment variable for the password
### Removed
* docker-host: Removed `docker_conf_use_iptables` variable (iptable usage forced to true)
## [24.03] 2024-03-01
### Added
* autosysadmin-agent: upstream release 24.03
* autosysadmin-restart_nrpe: add role
* certbot: Renewal hook for NRPE
* kvm-host: add minifirewall rules if DRBD interface is configured
* proftpd: add whitelist ip
### Changed
* apt: add ftp.evolix.org as recognized system source
* autosysadmin-agent: logs clearing is done weekly
* autosysadmin-agent: rename /usr/share/scripts/autosysadmin/{auto,restart}
* certbot: use pkey to test the key
* evolinux-base: execute autosysadmin-agent and autosysadmin-restart_nrpe roles
* lxc-php, php: Update sury PGP key
* openvpn: earlier alert for CA expiration
* redis: create sysfs config file if missing
* nextcloud: use latest version by default
### Removed
* autosysadmin: replaced by autosysadmin-agent
## [24.02.1] 2024-02-08
### Fixed
* fail2ban: fix Ansible syntax
## [24.02] 2024-02-08
### Added
* Support for PHP 8.3 with bookworm LXC containers
* apt: add task file to install ELTS repository (default: False)
* autosysadmin: Add a role to automatically deploy autosysadmin on evolixisation
* check_free_space: added role
* etc-git: add /var/chroot-bind/etc/bind repo
* fail2ban: add script unban_ip
* generateldif: new Services for check_pressure_{cpu,io,mem}
* kvm-host: Automatically add an LVM filter when LVM is present
* lxc-php: Allow one to install php83 on Bookworm container
* minifirewall: Fix nagios check for old versions of minifirewall
* mongodb: add gpg key for 7.0
* nagios-nrpe: add check_sentinel for monitoring Redis Sentinel
* nagios-nrpe: new check_pressure_{cpu,io,mem}
* remount-usr: do not try to remount /usr RW if /usr is not a mounted partition
* vrrpd: configure minifirewall
* vrrpd: test if interface exists before deleting it
* webapps/evoadmin-mail: package installed via public.evolix.org/evolix repo starting with Bookworm
* webapps/nextcloud: Add condition for archive tasks
* webapps/nextcloud: Add condition for config tasks
* webapps/nextcloud: Added var nextcloud_user_uid to enforce uid for nextcloud user
* webapps/nextcloud: Set ownership and permissions of data directory
### Changed
* add-vm.sh: allow VM name max length > 20
* amavis: make ldap_suffix mandatory
* apache : fix goaway pattern for bad bots
* apache : rename MaxRequestsPerChild to MaxConnectionsPerChild (new name)
* apache: use backward compatible Redirect directive
* apt: Disable archive repository for Debian 8
* apt: Use the GPG version of the key for Debian 8-9
* bind: Update role for Buster, Bullseye and Bookworm support
* dovecot: add variables for LDAP
* dovecot: Munin plugin conf path is now `/etc/munin/plugin-conf.d/zzz-dovecot` (instead of `z-evolinux-dovecot`)
* evocheck: upstream release 24.01
* evolinux-base: dump-server-state upstream release 23.11
* evolinux-base: use separate default config file for rsyslog
* kvmstats: use .capacity instead of .physical for disk size
* ldap: make ldap_suffix mandatory
* listupgrade : old-kernel-removal.sh upstream release 24.01
* log2mail: move custom config in separate file
* lxc: init /etc git repository in lxc container
* mysql: disable performance schema for Debian 8
* nagios: add dockerd check in nrpe check template
* nagios: cleaning nrpe check template
* nagios: rename var `nagios_nrpe_process_processes` into `nagios_nrpe_processes` and check systemd-timesyncd instead of ntpd in Debian 12
* nagios: add option --full to check pressure IO and mem to avoid flaps
* proftpd: in SFTP vhost, enable SSH keys login, enable ed25549 host key for Debian >= 11
* redis: manage config template inside a block, to allow custom modifications outside
* spamassassin: Use spamd starting with Bookworm
* squid: config directory seems to have changed from /etc/squid3 to /etc/squid in Debian 8
* unbound: Add config file to allow configuration reload on Debian 11 and lower
* unbound: Add munin configuration & setup plugin
* unbound: Big cleanup
* unbound: Move generated config file to `/etc/unbound/unbound.conf.d/evolinux.conf`
* unbound: Use root hints provided by debian package dns-root-data instead of downloading them
* vrrpd: replace switch script with custom one (fix MAC issue, use `ip(8)`, shell cleanup…)
* vrrpd: variable to force update the switch script (default: false)
* webapps/nextcloud: Add Ceph volume to fstab
* webapps/nextcloud: Set home directory's mode
### Fixed
* Add php-fpm82 to LDAP when relevant
* Check stat.exists before stat.isdir
* apache: fix MaxRequestsPerChild value to be sync with wiki.e.o
* apt: use archive.debian.org with Stretch
* certbot: fix hook for dovecot when more than one certificate is used (eg. different certificates for POP3 and IMAP)
* dovecot: add missing LDAP conf iterate_filter to exclude disabled accounts in users list (caused « User no longer exists » errors in commands listing users like « doveadm user -u '*' » or « doveadm expunge -u "*" mailbox INBOX savedbefore 7d »).
* dovecot: fix missing default mails
* dovecot: fix plugin dovecot1
* evoadmin-web: Fix PHP version for Bookworm
* evolinux-base: fix hardware.yml (wrong repo, missing update cache)
* evolinux-base: start to install linux-image-cloud-amd64 with Buster
* fail2ban: fix template marker
* minifirewall: ports 25, 53, 443, 993, 995 not opened publicly by default anymore, ports 20, 21, 110, 143 not opened semi-publicly by default anymore.
* nagios: fix default file to monitor for check_clamav_db
* nginx: add "when: not ansible_check_mode" in various tasks to prevent fail in check mode
* nginx: fix mistake between "check_mode: no" and "when: not ansible_check_mode" (fail in check mode)
* nginx: fix mistake between "check_mode: no" and "when: not ansible_check_mode" (fail in check mode)
* nginx: keep indentation
* nginx: take care of « already defined » and « not yet defined » server status suffix in check mode
* php: Bullseye/Sury > Honor the php_version asked in the pub.evolix.org repository
* php: drop apt_preferences(5) file for sury
* postfix: remove dependency on evolinux_fqdn var
* proftpd: set missing default listen IP for SFTP
* roundcube: set default SMTP port to 25 instead of 587, which failed because of missing SSL conf (local connexion does not need SSL)
* ssl: no not execute haproxy tasks and reload if haproxy is disabled
* unbound: Add a apt cache validity to enforce an apt update if needed
* webapps/nextcloud: added check that nextcloud uid is over 3000
* webapps/nextcloud: fix Add Ceph volume to fstab : missing UUID= in src
* webapps/nextcloud: fix misplaced gid attribute
* webapps/nextcloud: fix missing gid
* webapps/roundcube & evoadminmail: make roles more idempotent (were failing when played twice)
* amavis: Add variables for generate "ldap_suffix"
* proftpd: fix error when no SSH key is provided
### Removed
* evolinux-base: no need to remove update-evobackup-canary from sbin anymore
* evolinux-base: no need to symlink backup-server-state to dump-server-state anymore
## [23.10] 2023-10-14
### Added
* apt: disable `NonFreeFirmware` warning for VM on Debian 12+
* apt: explicit `signed-by` directives for official sources
* bind: add reload-zone helper
* certbot: deploy-hook for proftpd
* docker-host: added var for user namespace setting
* dovecot: add Munin plugins dovecot1 and dovecot_stats (patched)
* dovecot: fix old_stats plugin for Dovecot 2.3
* evocheck: add support for Debian >= 12 split SSH configuration
* evolinux-base: add split SSH configuration for Debian >= 12
* evolinux-base: configure `.bashrc` for all users
* evolinux-base: New variable `evolinux_system_include_ntpd` to chose wether or not to include `ntpd` role
* evolinux-base: reboot the server if the Cloud kernel has been installed
* evolinux-users: add split SSH configuration for Debian >= 12
* evolinux: install HPE Agentless Management Service (amsd)
* fail2ban: add default variable fail2ban_dbpurgeage_default
* fail2ban: add `fail2ban_sshd_port` variable to configure sshd port
* kvm-host: release 23.10 for migrate-vm.sh
* metricbeat/logstash: fix Ansible syntax
* mysql: new munin graph to follow binlog_days over time
* nagios-nrpe: add a NRPE check-local command with completion.
* nagios-nrpe: add a proper monitoring plugin for GlusterFS (on servers, not for clients)
* php: add new variable to disable overriding settings of php-fpm default pool (www)
* policy_pam: New role to manage password policy with `pam_pwquality` & `pam_pwhistory`
* userlogrotate: add a `userlogpurge` script disabled by default
* userlogrotate: new version, with separate conf file
* userlogrotate: rotate also php.log
* java: allow version 17
* timesyncd: new role, used instead of ntpd by default starting with Debian 12
### Changed
* all: change syntax "become: [yes,no]" → "become: [true,false]"
* all: change syntax "force: [yes,no]" → "force: [true,false]"
* elasticsearch: improve networking configuration
* evolinux-base: include files under `sshd_config.d`
* evolinux-users: remove Stretch references in tasks that also apply to next Debian versions
* evomaintenance: upstream release 23.10.1
* lxc-php: change LXC container in bookworm for php82
* minifirewall: update nrpe script to check active configuration
* minifirewall: upstream release 23.07
* mysql: improve shell syntax for mysql_skip script
* nagios-nrpe: set default check_load --per-cpu for BSD
* pgbouncer: minor fixes
* postfix (packmail or when postfix_slow_transport_include is True): change `miniprofmal_backoff_time` from 2h to 15m (see HowtoPostfix)
* postfix (packmail) : optimize Amavis integration
* postfix: disable sending mails via IPv6
* postfix: new spam.sh update script that avoids reloading if files did not change.
* postgresql: fix file `postgresql.pref.j2` for exclude package
* postgresql: fix task `update apt cache` for PGDG repo
* redis: standardize plugins path from `/usr/local/share/munin/` to `/usr/local/lib/munin/plugins/`
* varnish: allow the systemd template to be overridden with a template outside of the role
* lxc: purge openssh-server from container on install
### Fixed
* elasticsearch: comment the `Xlog:gc` line instead of changing it completely
* evocheck: fix IS_SSHALLOWUSERS condition
* evolinux-base, evolinux-users: Fix files mode under `/etc/ssh/sshd_config.d`
* evolinux-base: fix file extension
* fail2ban: fix cron `fail2ban_dbpurge` (should be bash instead of sh)
* lxc-php: fix APT keyring path inside containers
* nagios-nrpe: `check_ssl_local` now has an output that nrpe can understand when it isn't OK
* nagios-nrpe: remount `/usr` **after** installing the packages
* nagios-nrpe: sync Redis check from redis roles
* nginx: set default server directive in default vhost
* opendkim: update apt cache before install
* packweb-apache,nagios-nrpe: add missing task and config for PHP 8.2 container
* postfix: add missing `localhost.$mydomain` to `mydestination`
* redis: replace erroneous `ini_file` module for Munin config, fix dedicated Munin config filename (z-XXX).
* evolinux-base: use lineinfile instead of replace under root task
* evolinux-base: Corriger autorisation pour evolinux_user
* docker-host: Retirer directive state en trop
* rbenv: Installer libyaml-dev
### Removed
* dovecot: remove Munin plugin dovecot (not working)
## [23.04] 2023-04-23
### Added
* graylog: new role
* lxc-php: add support for PHP 8.2 container
### Changed
* Use FQCN (Fully Qualified Collection Name)
* apt: with Debian 12, backports are installed but disabled by default
* openvpn: updated the README file
* pgbouncer: add handler to restart the service
### Fixed
* generate-ldif: Support for Debian 12
## [23.03.1] 2023-03-16
### Added
* pgbouncer: new role
### Changed
* apt: deb822 migration python script is looked relative to shell script
* listupgrade: remove old typo version of the cron task
* minifirewall: support protocols in numeric form
## [23.03] 2023-03-16
### Added
* apache: add task to enable mailgraph on default vhost and index.html
* apt: add move-apt-keyrings script/tasks
* apt: add tools to migrate sources to deb822 format
* fail2ban: add "Internal login failure" to Dovecot filter
* lxc: copy `/etc/profile.d/evolinux.sh` from host into container
* nagios-nrpe: add tasks/files for a wrapper
* nagios-nrpe: Print pool config path in check_phpfpm_multi output
* php: add `php_version` variable when sury is activated for each Debian version
* php: add a way to choose which version to install using sury repository
* postfix: Add task to enable mailgraph on packmail
* postgresql: configure max_connections
* userlogrotate: create dedicated role, separated from packweb-apache
* varnish: add `varnish_update_config` variable to disable configuration update
### Changed
* Use systemd module instead of command
* Removed all `warn: False` args in command, shell and other modules as it's been deprecated and will give a hard fail in ansible-core 2.14.0.
* apt: Use pub.evolix.org instead of pub.evolix.net
* bind: refactor role
* elasticsearch: Disable garabge collector logging (JDK >= 9)
* evolinux-users: Update sudoers template to remove commands allowed without password
* listupgrade: upstream release 23.03.3
* kvmstats: use virsh domstats | awk to get guests informations
* nagios-nrpe : Rewrite `check_vrrpd` for a better check (check `rp_filter`, `vrrpd` and `uvrrpd` compatible, use arguments, …)
* openvpn: Change `check_openvpn` destination file to comply with recent EvoBSD change
* postfix: come back to default value of `notify_classes` for pack mails.
* userlogrotate: set rotate date format in right order (YYYY-MM-DD)!
* webapps/nextcloud : Change default data directory to be outside web root
* webapps/nextcloud : Small enhancement on the vhost template to lock out data dir
* yarn: update apt key
### Fixed
* Proper jinja spacing
* clamav: set `MaxConnectionQueueLength` to its default value (200), custom (15) was way too small and caused recurring failures in Postfix.
* docker-host: fix type in `daemon.json` and remove host configuration that is already in the systemd service by default
* evolinux-base: ensure dbus is started and enabled (not by default in the case of an offline netinst)
* haproxy: fix missing admin ACL in stats module access permissions
* openvpn: fix the client cipher configuration to match the server cipher configuration
* php: fix error introduced in #33503e4538 (`False` evaluated as a String instead of Boolean)
* php: install using Sury repositories on Bullseye
* postfix (packmail only): disable `concurrency_failed_cohort_limit` for destination smtp-amavis to prevent the suspension of this destination when Amavis fails to answer. Indeed, we configure the suspension delay quite long in `minimal_backoff_time` (2h) and `maximal_backoff_time` (6h) to reduce the risk of ban from external SMTPs.
* postfix: avoid Amavis transport to be considered dead when restarted.
* postfix: remove unused `aliases_scope=sub` from virtual_aliases.cf (it generated warnings)
* userlogrotate: fix bug introduced in commit 2e54944a246 (rotated files were not zipped)
* userlogrotate: skip zipping if .gz log already exists (prevents interactive question)
### Removed
* evolinux-base: subversion is not installed anymore
## [22.12] 2022-12-14
### Added
* all: add signed-by option for additional APT sources
* all: preliminary work to support Debian 12
* all: use proper keyrings directory for APT version
* evolinux-base: replace regular kernel by cloud kernel on virtual servers
* lxc-php: set php-fpm umask to `007`
* nagios-nrpe: `check_ceph_*`
* nagios-nrpe: `check_haproxy_stats` supports DRAIN status
* packweb-apache: enable `log_forensic` module
* rabbitmq: add link in default page
* varnish: create special tmp directory for syntax validation
* postfix: add localhost.$mydomain to mydestination
### Changed
* certbot: auto-detect HAPEE version in renewal hook
* evocheck: install script according to Debian version
* evolinux-base: `utils.yml` can be excluded
* evolinux-todo: execute tasks only for Debian distribution (because this task is a dependency for others roles used on different distributions)
* evolinux-user: add sudoers privilege for check `php_fpm81`
* evomaintenance: allow missing API endpoint if APi is disabled
* java: use default JRE package when version is not specified
* keepalived: change exit code (_warning_ if running but not on expected state ; _critical_ if not running)
* listupgrade: better detection for PostgreSQL
* listupgrade: sort/uniq of packages/services lists in email template
* lxc-solr: detect the real partition options
* lxc-solr: download URL according to Solr Version
* lxc-solr: set homedir and port at install
* minifirewall: whitelist deb.freexian.com
* openvpn: shellpki upstream release 22.12.2
* openvpn: specifies that the mail for expirations is for OpenVPN
* packweb-apache: manual dependencies resolution
* redis: some values should be quoted
* redis: variable to disable transparent hugepage (default: do nothing)
* squid: whitelist `deb.freexian.com`
* varnish: better package facts usage with check mode and tags
* varnish: systemd override depends on Varnish version instead of Debian version
### Fixed
* evolinux-user: Fix sudoers privilege for check `php_fpm80`
* nagios-nrpe: Fix check opendkim for recent change in listening port
* openvpn: Fix mode of shellpki script
* proftpd: Fix format of public key files controlled by Ansible
* proftpd: Fix mode of public key directory and files (they have to be accessible by `proftpd:nobody`)
* varnish: fix missing state, that blocked the task
### Removed
* openvpn: Deleted the task fixing the CRL rights since it has been fixed in upstream
## [22.09] 2022-09-19
### Added
* evolinux_users: create only users who have a certain value for the `create` key (default: `always`).
* php: install php-xml with recent PHP versions
* vrrp: add an `ip.yml` task file to help create VRRP addresses
* webapps/nextcloud: Add compatibility with apache2, and apache2 mod_php.
* memcached: NRPE check for multi-instance setup
* munin: Add ipmi_ plugins on dedicated hardware
* proftpd: Add options to override configs (and add a warning if file was overriden)
* proftpd: Allow user auth with ssh keys
### Changed
* evocheck: upstream release 22.09
* evolinux-base: update-evobackup-canary upstream release 22.06
* generate-ldif: Support any MariaDB version
* minifirewall: use handlers to restart minifirewall
* openvpn: automate the initialization of the CA and the creation of the server certificate ; use openssl_dhparam module instead of a command
* generate-ldif: support any version of MariaDB (instead of only 10.0, 10.1 and 10.3)
* openvpn: Run OpenVPN with the \_openvpn user and group instead of nobody which is originally for NFS
* nagios-nrpe: Upgrade check_mongo
### Fixed
* fail2ban: fix dovecot-evolix regex syntax
* haproxy: make it so that munin doesn't break if there is a non default `haproxy_stats_path`
* mysql: Add missing Munin conf for Debian 11
* redis: config directory must be owned by the user that runs the service (to be able to write tmp config files in it)
* varnish: make `-j <jail_config>` the first argument on jessie/stretch as it has to be the first argument there.
* webapps/nextcloud: Add missing dependencies for imagick
### Removed
* evocheck: remove failure if deprecated variable is used
* webapps/nextcloud: Drop support for Nginx
## [22.07.1] 2022-07-28
### Changed
* evocheck: upstream release 22.07
* evomaintenance: upstream release 22.07
* mongodb: replace version_compare() with version()
* nagios-nrpe: check_disk1 returns only alerts
* nagios-nrpe: use regexp to exclude paths/devices in check_disk1
## [22.07] 2022-07-08
### Added
* fail2ban: Ensure apply dbpurgeage from stretch and buster
## [22.07] 2022-07-06
### Added
* evolinux-base: session timeout is configurable (default: 36000 seconds = 10 hours)
* haproxy: add haproxy_allow_ip_nonlocal_bind to set sysctl value (optional)
* kvm-host: fix depreciation of "drbd-overview" by "drbdadm status" in add-vm.sh
* openvpn: configure logrotate
### Changed
* openvpn: minimal rights on /etc/shellpki/ and crl.pem
### Fixed
* evolinux-base: Update PermitRootLogin task to work on Debian 11
* evolinux-user: Update PermitRootLogin task to work on Debian 11
* minifirewall: docker mode is configurable
## [22.06.3] 2022-06-17
### Changed
* evolinux-base: blacklist and do not install megaclisas-status package on incompatible servers
## [22.06.2] 2022-06-10
### Added
* postgresql: add variable to configure binding addresses (default: 127.0.0.1)
### Changed
* evocheck: upstream release 22.06.2
* fail2ban: Give the possibility to override jail.local (with fail2ban_override_jaillocal)
* fail2ban: If jail.local was overriden, add a warning
* fail2ban: Allow to tune some jail settings (maxretry, bantime, findtime) with ansible
* fail2ban: Allow to tune the default action with ansible
* fail2ban: Change default action to ban only (instead of ban + mail with whois report)
* fail2ban: Configure recidive jail (off by default) + extend dbpurgeage
* redis: binding is possible on multiple interfaces (breaking change)
### Fixed
* Enforce String notation for mode
* postgresql: fix nested loop for Munin plugins
* postgresql: Fix task order when using pgdg repo
* postgresql: Install the right pg version
## [22.06.1] 2022-06-06
### Changed
* evocheck: upstream release 22.06.1
* minifirewall: upstream release 22.06
* mysql: evomariabackup release 22.06.1
* mysql: reorganize evomariabackup to use mtree instead of our own dir-check
## [22.06] 2022-06-03
### Added
* certbot: add hapee (HAProxy Enterprise Edition) deploy hook
* evolinux-base: add dir-check script
* evolinux-base: add update-evobackup-canary script
* mysql: add post-backup-hook to evomariabackup
* mysql: use dir-check inside evomariabackup
### Changed
* docker: Allow "live-restore" to be toggled with docker_conf_live_restore
* evocheck: upstream release 22.06
* evolinux-base: Replacement of variable `evolinux_packages_hardware` by `ansible_virtualization_role == "host"` automatize host type detection and avoids installing smartd & other on VM.
* minifirewall: tail template follows symlinks
* mysql: add "set crypt_use_gpgme=no" Mutt option, for mysqltuner
### Fixed
* Role `postfix`: Add missing `localhost.localdomain localhost` to `mydestination` variable which caused undelivered of some local mails.
## [22.05.1] 2022-05-12
### Added
* docker: Introduce new default settings + allow to change the docker data directory
* docker: Introduce new variables to tweak daemon settings
### Changed
* evocheck: Upstream release 22.05
### Removed
* docker: Removed Debian Jessie support
## [22.05] 2022-05-10
### Added
* etc-git: use "ansible-commit" to efficiently commit all available repositories (including /etc inside LXC) from Ansible
* minifirewall: compatibility with "legacy" version of minifirewall
* minifirewall: configure proxy/backup/sysctl values
* munin: Add possibility to install local plugins, and install dhcp_pool plugin
* nagios-nrpe: Add a check dhcp_pool
* redis: Activate overcommit sysctl
* redis: Add log2mail user to redis group
### Changed
* dump-server-state: upstream release 22.04.3
* evocheck: upstream release 22.04.1
* evolinux-base: Add non-free repos & install non-free firmware on dedicated hardware
* evolinux-base: rename backup-server-state to dump-server-state
* generate-ldif: Add services check for bkctld
* minifirewall: restore "force-restart" and fix "restart-if-needed"
* minifirewall: tail template follows symlinks
* minifirewall: upstream release 22.05
* opendkim : add generate opendkim-genkey in sha256 and key 4096
* openvpn: use a local copy of files instead of cloning an external git repository
* openvpn: use a subnet topology instead of the net30 default topology
* tomcat: Tomcat 9 by default with Debian 11
* vrrpd: Store sysctl values in specific file
### Fixed
* etc-git : Remount /usr in rw for git gc in in /usr/share/scripts/
* etc-git: Make evocommit fully compatible with OpenBSD
* generate-ldif: Correct generated entries for php-fpm in containers
* keepalived: repair broken role
* minifirewall: fix `failed_when` condition on restart
* postfix: Do not send mails through milters a second time after amavis (in packmail)
* redis: Remount /usr with RW before adding nagios plugin
## [22.03] 2022-03-02
### Added
* apt: apt_hold_packages: broadcast message with wall, if present
* evolinux-base: option to bypass raid-related tasks
* Explicit permissions for systemd overrides
* generate-ldif: Add support for php-fpm in containers
* kvm-host: add missing default value
* lxc-php: preliminary support for PHP 8.1 container
* openvpn: now check that openvpn has been restarted since last certificates renewal
* redis: always install check_redis_instances
* redis: check_redis_instances tolerates absence of instances
### Changed
* elasticsearch: Use `/etc/elasticsearch/jvm.options.d/evolinux` instead of default `/etc/elasticsearch/jvm.options`
* evolinux-users: check permissions for /etc/sudoers.d
* evolinux-users: optimize sudo configuration
* lxc: Fail if /var is nosuid
* openvpn: make it compatible with OpenBSD and add some improvements
## [22.01.3] 2022-01-31
### Changed
* rbenv: install Ruby 3.1.0 by default
* evolinux-base: backup-server-state: add "force" mode
### Fixed
* evolinux-base: backup-server-state: fix systemctl invocation
* varnish: update munin plugin to work with recent varnish versions
## [22.01.2] 2022-01-27
### Changed
* evolinux-base: many improvements for backup-server-state script
* remount-usr: use findmnt to find if usr is a readonly partition
## [22.01] 2022-01-25
### Added
* Support for Debian 11 « Bullseye » (with possible remaining blind spots)
* apache: new variable for MPM mode (+ updated default config accordingly)
* apache: prevent accessing Git or "env" related files
* certbot: add script for manual deploy hooks execution
* docker-host: install additional dependencies
* dovecot: switch to TLS 1.2+ and external DH params
* etc-git: centralize cron jobs in dedicated crontab
* etc-git: manage commits with an optimized shell script instead of many slow Ansible tasks
* evolinux-base: add script backup-server-state
* evolinux-base: configure top and htop to display the swap column
* evolinux-base: install molly-guard by default
* generate-ldif: detect RAID controller
* generate-ldif: detect mdadm
* listupgrade: crontab is configurable
* logstash: logging to syslog is configurable (default: True)
* mongodb: create munin plugins directory if missing
* munin: systemd override to unprotect home directory
* mysql: add evomariabackup 21.11
* mysql: improve Bullseye compatibility
* mysql: script "mysql_connections" to display a compact list of connections
* mysql: script "mysql-queries-killer.sh" to kill MySQL queries
* nagios-nrpe + evolinux-users: new check for ipmi
* nagios-nrpe + evolinux-users: new check for RAID (soft + hard)
* nagios-nrpe + evolinux-users: new checks for bkctld
* nagios-nrpe: new check influxdb
* openvpn: new role (beta)
* redis: instance service for Debian 11
* squid: add *.o.lencr.org to default whitelist
### Changed
* Change version pattern
* Install python 2 or 3 libraries according to running python version
* Remove embedded GPG keys only if legacy keyring is present
* apt: remove workaround for Evolix public repositories with Debian 11
* apt: upgrade packages after all the configuration is done
* apt: use the new security repository for Bullseye
* certbot: silence letsencrypt deprecation warnings
* elasticsearch: elastic_stack_version = 7.x
* evoacme: exclude renewal-hooks directory from cron
* evoadmin-web: simpler PHP packages lists
* evocheck: upstream release 21.10.4
* evolinux-base: alert5 comes after the network
* evolinux-base: force Debian version to buster for Evolix repository (temporary)
* evolinux-base: install freeipmi by default on dedicated hw
* evolinux-base: logs are rotated with dateext by default
* evolinux-base: split dpkg logrotate configuration
* evolinux-users + nagios-nrpe: Add support for php-fpm80 in lxc
* evomaintenance: extract a config.yml tasks file
* evomaintenance: upstream release 22.01
* filebeat/metricbeat: elastic_stack_version = 7.x
* kibana: elastic_stack_version = 7.x
* listupgrade: old-kernel-removal version 21.10
* listupgrade: upstream release 21.06.3
* logstash: elastic_stack_version = 7.x
* mongodb: Allow to specify a mongodb version for buster & bullseye
* mongodb: Deny the install on Debian 11 « Bullseye » when the version is unsupported
* mongodb: Support version 5.0 (for buster)
* mysql: use python3 and mariadb-client-10.5 with Debian 11 and later
* nodejs: default to version 16 LTS
* php: enforce Debian version with assert instead of fail
* squid: improve default whitelist (more specific patterns)
* squid: must be started in foreground mode for systemd
* squid: remove obsolete variable on Squid 4
### Fixed
* evolinux-base: fix alert5.service dependency syntax
* certbot: sync_remote excludes itself
* lxc-php: fix config for opensmtpd on bullseye containers
* mysql : Create a default ~root/.my.cnf for compatibility reasons
* nginx : fix variable name and debug to actually use nginx-light
* packweb-apache : Support php 8.0
* nagios-nrpe: Fix check_nfsserver for buster and bullseye
### Removed
* evocheck: package install is not supported anymore
* logstash: no more dependency on Java
* php: remove php-gettext for 7.4
## [10.6.0] 2021-06-28
### Added
* Add Elastic GPG key to kibana, filebeat, logstash, metricbeat roles
* apache: new variable for mpm mode (+ updated default config accordingly)
* evolinux-base: add default motd template
* kvm-host: add migrate-vm script
* mysql: variable to disable myadd script overwrite (default: True)
* nodejs: update apt cache before installing the package
* squid: add Yarn apt repository in default whitelist
### Changed
* Update Galaxy metadata (company, platforms and galaxy_tags)
* Use 'loop' syntax instead of 'with_first_found/with_items/with_dict/with_nested/with_list'
* Use Ansible syntax used in Ansible 2.8+
* apt: store keys in /etc/apt/trusted.gpg.d in ascii format
* certbot: sync_remote.sh is configurable
* evolinux-base: copy GPG key instead of using apt-key
* evomaintenance: upstream release 0.6.4
* kvm-host: replace the "kvm-tools" package with scripts deployed by Ansible
* listupgrade: upstream release 21.06.2
* nodejs: change GPG key name
* ntpd: Add leapfile configuration setting to ntpd on debian 10+
* packweb-apache: install phpMyAdmin from buster-backports
* spamassassin: change dependency on evomaintenance
* squid: remove obsolete variable on Squid 4
### Fixed
* add default (useless) value for file lookup (first_found)
* fix pipefail option for shell invocations
* elasticsearch: inline YAML formatting of seed_hosts and initial_master_nodes
* evolinux-base: fix motd lookup path
* ldap: fix edge cases where passwords were not set/get properly
* listupgrade: fix wget error + shellcheck cleanup
### Removed
* elasticsearch: recent versiond don't depend on external JRE
## [10.5.1] 2021-04-13
### Added
* haproxy: dedicated internal address/binding (without SSL)
### Changed
* etc-git: commit in /usr/share/scripts when there's an active repository
## [10.5.0] 2021-04-01
### Added
* apache: new variables for logrotate + server-status
* filebeat: package can be upgraded to latest (default: False)
* haproxy: possible admin access with login/pass
* lxc-php: Add PHP 7.4 support
* metricbeat: package can be upgraded to latest (default: False)
* metricbeat: new variables to configure SSL mode
* nagios-nrpe: new script check_phpfpm_multi
* nginx: add access to server status on default VHost
* postfix: add smtpd_relay_restrictions in configuration
### Changed
* apache: rotate logs daily instead of weekly
* apache: deny requests to ^/evolinux_fpm_status-.*
* certbot: use a fixed 1.9.0 version of the certbot-auto script (renamed "letsencrypt-auto")
* certbot: use the legacy script on Debian 8 and 9
* elasticsearch: log rotation is more readable/maintainable
* evoacme: upstream release 21.01
* evolinux-users: Add sudo rights for nagios for multi-php lxc
* listupgrade: update script from upstream
* minifirewall: change some defaults
* nagios-nrpe: update check_phpfpm_status.pl & install perl dependencies
* redis: use /run instead or /var/run
* redis: escape password in Munin configuration
### Fixed
* bind9: added log files to apparmor definition so bind can run
* filebeat: fix Ansible syntax error
* nagios-nrpe: libfcgi-client-perl is not available before Debian 10
* redis: socket/pid directories have the correct permissions
### Removed
* nginx: no more "minimal" mode, but the package remains customizable.
## [10.4.0] 2020-12-24
### Added
* certbot: detect domains if missing
* certbot: new "sync_remote.sh" hook to sync certificates and execute hooks on remote servers
* varnish: variable for jail configuration
### Changed
* certbot: disable auth for Let's Encrypt challenge
* nginx: change from "nginx_status-XXX" to "server-status-XXX"
## [10.3.0] 2020-12-21
### Added
* bookworm-detect: transitional role to help dealing with unreleased bookworm version
* dovecot: Update munin plugin & configure it
* dovecot: vmail uid/gid are configurable
* evoacme: variable to disable Debian version check (default: False)
* kvm-host: Add drbd role dependency (toggleable with kvm_install_drbd)
* minifirewall: upstream release 20.12
* minifirewall: add variables to force upgrade the script and the config (default: False)
* mysql: install save_mysql_processlist script
* nextcloud: New role to setup a nextcloud instance
* redis: variable to force use of port 6379 in instances mode
* redis: check maxmemory in NRPE check
* lxc-php: Allow php containers to contact local MySQL with localhost
* varnish: config file name is configurable
### Changed
* Create system users for vmail (dovecot) and evoadmin
* apt: disable APT Periodic
* evoacme: upstream release 20.12
* evocheck: upstream release 20.12
* evolinux-users: improve uid/login checks
* tomcat-instance: fail if uid already exists
* varnish: change template name for better readability
* varnish: no threadpool delay by default
* varnish: no custom reload script for Debian 10 and later
### Fixed
* cerbot: parse HAProxy config file only if HAProxy is found
## [10.2.0] 2020-09-17
### Added
* evoacme: remount /usr if necessary
* evolinux-base: swappiness is customizable
* evolinux-base: install wget
* tomcat: root directory owner/group are configurable
### Changed
* Change default public SSH/SFTP port from 2222 to 22222
### Fixed
* certbot: an empty change shouldn't raise an exception
* certbot: fix "no-self-upgrade" option
### Removed
* evoacme: remove Debian 9 support
## [10.1.0] 2020-08-21
### Added
* certbot: detect HAProxy cert directory
* filebeat: allow using a template
* generate-ldif: add NVMe disk support
* haproxy: add deny_ips file to reject connections
* haproxy: add some comments to default config
* haproxy: enable stats frontend with access lists
* haproxy: preconfigure SSL with defaults
* lxc-php: Don't disable putenv() by default in PHP settings
* lxc-php: Install php-sqlite by default
* metricbeat: allow using a template
* mysql: activate binary logs by specifying log_bin path
* mysql: option to define as read only
* mysql: specify a custom server_id
* nagios-nrpe/evolinux-base: brand new check for hardware raid on HP servers gen 10
* nginx: make default vhost configurable
* packweb-apache: Install zip & unzip by default
* php: Don't disable putenv() by default in PHP settings
* php: Install php-sqlite by default
### Changed
* certbot: fix haproxy hook (ssl cert directory detection)
* certbot: install certbot dependencies non-interactively for jessie
* elasticsearch: configure cluster with seed hosts and initial masters
* elasticsearch: set tmpdir before datadir
* evoacme: read values from environment before defaults file
* evoacme: update for new certbot role
* evoacme: upstream release 20.08
* haproxy: adapt backports installed package list to distibution
* haproxy: chroot and socket path are configurable
* haproxy: deport SSL tuning to Mozilla SSL generator
* haproxy: rotate logs with date extension and immediate compression
* haproxy: split stats variables
* lxc-php: Do --no-install-recommends for ssmtp/opensmtpd
* mongodb: install custom munin plugins
* nginx: read server-status values before changing the config
* packweb-apache: Don't turn on mod-evasive emails by default
* redis: create sudoers file if missing
* redis: new syntax for match filter
* redis: raise an error is port 6379 is used in "instance" mode
### Fixed
* certbot: restore compatibility with old Nginx
* evobackup-client: fixed the ssh connection test
* generate-ldif: better detection of computerOS field
* generate-ldif: skip some odd ethernet devices
* lxc-php: Install opensmtpd as intended
* mongodb: fix logrotate patterm on Debian buster
* nagios-nrpe: check_amavis: updated regex
* squid: better regex to match sa-update domains
* varnish: fix start command when multiple addresses are present
## [10.0.0] - 2020-05-13
### Added
* apache: the default VHost doesn't redirect to https for ".well-known" paths
* apt: added buster backports prerferences
* apt: check if cron is installed before adding a cron job
* apt: remove jessie/buster sources from Gandi servers
* apt: verify that /etc/evolinux is present
* certbot : new role to install and configure certbot
* etc-git: add versioning for /usr/share/scripts on Debian 10+
* evoacme: upstream version 19.11
* evolinux-base: default value for "evolinux_ssh_group"
* evolinux-base: install /sbin/deny
* evolinux-base: install Evocheck (default: `True`)
* evolinux-base: on debian 10 and later, add noexec on /dev/shm
* evolinux-base: on debian 10 and later, add /usr/share/scripts in root's PATH
* evolinux-base: remove the chrony package
* evomaintenance: don't configure firewall for database if not necessary
* generate-ldif: support MariaDB 10.3
* haproxy: add a variable to keep the existing configuration
* java: add Java 11 as possible version to install
* listupgrade: install old-kernel-autoremoval script
* minifirewall: add a variable to force the check scripts update
* mongodb: mongodb: compatibility with Debian 10
* mysql-oracle: backport tasks from mysql role
* networkd-to-ifconfig: add variables for configuration by variables
* packweb-apache: Deploy opcache.php to give some insights on PHP's opcache status
* php: variable to install the mysqlnd module instead of the default mysql module
* postgresql : variable to install PostGIS (default: `False`)
* redis: rewrite of the role (separate instances, better systemd units…)
* webapps/evoadmin-web Add an htpasswd to evoadmin if you cant use an apache IP whitelist
* webapps/evoadmin-web Overload templates if needed
* evolinux-base: install ssacli for HP Smart Array
* evobackup-client role to configure a machine for backups with bkctld(8)
* bind: enable query logging for recursive resolvers
* bind: enable logrotate for recursive resolvers
* bind: enable bind9 munin plugin for recursive resolvers
### Changed
* replace version_compare() with version()s
* removed some deprecations for Ansible 2.7
* apache: improve permissions in save_apache_status script
* apt: hold packages only if package is installed
* bind: the munin task was present, but not included
* bind: change name of logrotate file to bind9
* certbot: commit hook must be executed at the end
* elasticsearch: listen on local interface only by default
* evocheck: upstream version 20.04.4
* evocheck: cron jobs execute in verbose
* evolinux-base: use "evolinux_internal_group" for SSH authentication
* evolinux-base: Don't customize the logcheck recipient by default.
* evolinux-base: configure cciss-vol-statusd in the proper file
* evomaintenance: upstream release 0.6.3
* evomaintenance: Turn on API by default (instead of DB)
* evomaintenance: install PG dependencies only when needed
* listupgrade: update from upstream
* lxc: rely on lxc_container module instead of command module
* lxc: remove useless loop in apt execution
* lxc: update our default template to be compatible with Debian 10
* lxc-php: refactor tasks for better maintainability
* lxc-php: Use OpenSMTPD for Stretch/Buster containers, and ssmtp for Jessie containers
* lxc-solr: changed default Solr version to 8.4.1
* minifirewall: better alert5 activation
* minifirewall: no http filtering by default
* minifirewall: /bin/true command doesn't report "changed" anymore
* nagios-nrpe: update check_redis_instances (same as redis role)
* nagios-nrpe: change default haproxy socket path
* nagios-nrpe: check_mode per cpu dynamically
* nodejs: change default version to 12 (new LTS)
* packweb-apache: Do the install & conffigure phpContainer script (instead of evoadmin-web role)
* php: By default, allow 128M for OpCache (instead of 64M)
* php: Don't set a chroot for the default fpm pool
* php: Make sure the default pool we define can be fully functionnal witout debian's default pool file
* php: Change the default pool names to something more explicit (and same for the variables names)
* php: Add a task to remove Debian's default FPM pool file (off by default)
* php: Cleanup CLI Settings. Also, allow url fopen and don't disable functions (in CLI only)
* postgresql : changed logrotate config to 10 days (and fixed permissions)
* rbenv: changed default Ruby version to 2.7.0
* squid: Remove wait time when we turn off squid
* squid: compatibility wit Debian 10
* tomcat: package version derived from Debian version if missing
* varnish: remove custom ExecReload= script for Debian 10+
### Fixed
* etc-git: fix warnings ansible-lint
* evoadmin-web: Put the php config at the right place for Buster
* lxc: Don't stop the container if it already exists
* lxc: Fix container existance check to be able to run in check_mode
* lxc-php: Don't remove the default pool
* minifirewall: fix warnings ansible-lint
* nginx: fix munin fcgi not working (missing chmod 660 on logs)
* php: add missing handler for php7.3-fpm
* roundcube: fix typo for roundcube vhost
* tomcat: fix typo for default tomcat_version
* evolinux-base: Fix our zsyslog rotate config that doesn't work on Debian 10
* certbot: Properly evaluate when apache is installed
* evolinux-base: Don't make alert5.service executable as systemd will complain
* webapps/evoadmin-web: Set default evoadmin_mail_tpl_force to True to fix a regression where the mail template would not get updated because the file is created before the role is first run.
* minifirewall: Backport changes from minifirewall (properly open outgoing smtp(s))
* minifirewall: Properly detect alert5.sh to turn on firewall at boot
* packweb-apache: Add missing dependency to evoacme role
* php: Chose the debian version repo archive for packages.sury.org
* php: update surry_post.yml to match current latest PHP release
* packweb-apache: Don't try to install PHPMyAdmin on Buster as it's not available
### Removed
* clamav : do not install the zoo package anymore
## [9.10.1] - 2019-06-21
### Changed
* evocheck : update (version 19.06) from upstream
## [9.10.0] - 2019-06-21
### Added
* apache: add server status suffix in VHost (and default site) if missing
* apache: add a variable to customize the server-status host
* apt: add a script to manage packages with "hold" mark
* etc-git: gitignore /etc/letsencrypt/.certbot.lock
* evolinux-base: install "spectre-meltdown-checker" (Debian 10 and later)
* evomaintenance: make hooks configurable
* nginx: add server status suffix in VHost (and default site) if missing
* redmine: enable gzip compression in nginx vhost
### Changed
* evocheck : update (unreleased) from upstream
* evomaintenance : use the web API instead of PG Insert
* fluentd: store gpg key locally
* rbenv: update defaults rbenv version to 1.1.2 and ruby version to 2.6.3
* redmine: update default version to 4.0.3
* nagios-nrpe: change required status code for http and https check
* redmine: use custom errors-pages in Nginx vhost
* nagios-nrpe: check_load is now based on ansible_processor_vcpus
* php: Stop enforcing /var/www/html as chroot while we use /var/www
* apt: Add Debian Buster repositories
### Fixed
* rbenv: add check_mode for check rbenv and ruby versions
* nagios-nrpe: fix redis_instances check when Redis port equal 0
* redmine: fix 500 error on logging
* evolinux-base: Validate sshd config with "-t" instead of "-T"
* evolinux-base: Ensure rename is present
* evolinux-users: Validate sshd config with "-t" instead of "-T"
* nagios-nrpe: Replace the dummy packages nagios-plugins-*with monitoring-plugins-*
## [9.9.0] - 2019-04-16
### Added
* etc-git: ignore evobackup/.keep-* files
* lxc: /home is mounted in the container by default
* nginx : add "x-frame-options: sameorigin" for Munin
### Changed
* changed remote repository to <https://gitea.evolix.org/evolix/ansible-roles>
* apt: Ensure jessie-backport from archives.debian.org is accepted
* apt: Remove jessie-update suite as it's no longer exists
* apt: Replace mirror.evolix.org by archives.debian.org for jessie-backport
* evocheck : update script from upstream
* evolinux-base: remove apt-listchanges on Stretch and later
* evomaintenance: embed version 0.5.0
* opendkim: aligning roles with our conventions, major changes in opendkim-add.sh
* redis: higher limit of open files
* redis: set variables on inclusion, not with set_facts
* tomcat: better tomcat version management
* webapps/evoadmin-web: add dbadmin.sh to sudoers file
### Fixed
* spamassasin: fix sa-update.sh and ensure service is started and enabled
* tomcat-instance: deploy correct version of config files
* tomcat-instance: deploy correct version of server.xml
## [9.8.0] - 2019-01-31
### Added
* filebeat: disable cloud_metadata processor by default
* metricbeat: disable cloud_metadata processor by default
* percona : new role to install Percona repositories and tools
* redis: add variable for configure unixsocketperm
### Changed
* redmine: refactoring of redmine role with use of rbenv
### Fixed
* ntpd: Update the restrictions to follow wiki.evolix.org/HowtoNTP client config
## [9.7.0] - 2019-01-17
### Added
* apache: add Munin configuration for Apache server-status URL
* evomaintenance: database variables must be set or the task fails
* fail2ban: add "ips" tag added to fail2ban/tasks/ip_whitelist.yml
* metricbeat: add a variable for the protocol to use with Elasticsearch
* rbenv: add pkg-config to the list of packages to install
* redis: Configure munin when working in instance mode
* redis: add a variable for renamed/disabled commands
* redis: add a variable to disable the restart handler
* redis: add a variable to force a restart (even with no change)
* proftpd: add FTPS and SFTP support
### Changed
* redis: distinction between main and master password
* evocheck: update evocheck.sh for source install
* php: added php-zip in the installed package list for debian 9 (and later)
* squid: added packagist.org in the whitelist
* java: update Oracle java package to 8u192
### Fixed
* fail2ban: fix "ignoreip" update
* metricbeat: fix username/password replacement
* nagios-nrpe: check_process now return the error code (making the check more usefull than /bin/true)
* nginx: Munin url config is now a template to insert the server-status prefix
* nodejs: Update yarn repo GPG key (current key expired)
* redis: In instance mode, ensure to replace the nrpe check_redis with the instance check script
* redis: Don't set the owner of /var/{lib,log}/redis to a redis instance account
## [9.6.0] - 2018-12-04
### Added
* evolinux-base: deploy custom motd if template are present
* minifirewall: all variables are configurable (untouched by default)
* minifirewall: main file is configurable
* squid: minifirewall main file is configurable
### Changed
* minifirewall: compare config before/after (for restart condition)
* squid: better replacement in minifirewall config
* evoadmin-mail: complete refactoring, use Debian Package
## [9.5.0] - 2018-11-14
### Added
* apache: separate task to update IP whitelist
* evolinux-base: install man package
* evolinux-users: add newaliases handler
* evomaintenance: FROM domain is configurable
* fail2ban: separate task to update IP whitelist
* nginx: add tag for ips management
* nginx: separate task to update IP whitelist
* postfix: enable SSL/TLS client
* ssl: add an SSL role for certificates deployment
* haproxy: add vars for tls configuration
* mysql: logdir can be customized
### Changed
* evocheck: update script from upstream
* evomaintenance: update script from upstream
* mysql: restart service if systemd unit has been patched
### Fixed
* packweb-apache: mod-security config is already included elsewhere
* redis: for permissions on log and lib directories
* redis: fix shell for instance users
* evoacme: fix error handling in sed_cert_path_for_(apache|nginx)
## [9.4.2] - 2018-10-12
### Added
* evomaintenance: install dependencies manually when installing vendored version
* nagios-nrpe: add an option to ignore servers in NOLB status
### Changed
* haproxy: move check_haproxy_stats to nagios-nrpe role
### Fixed
* evoacme: better error when apache2ctl fails
* evomaintenance: fix role compatibility with OpenBSD
* spamassassin: add missing right for amavis
* amavis: fix output result checking
## [9.4.1] - 2018-09-28
### Added
* redis: set masterauth when redis_password is defined
* evomaintenance: variable to install a vendored version
* evomaintenance: tasks/variables to handle minifirewall restarts
### Changed
* mysql-oracle: better handle packages and users
## [9.4.0] - 2018-09-20
### Added
* etc-git: manage a cron job to monitor uncommited changes in /etc/.git (default: `True`)
* evolinux-base: better shell history
* evolinux-users: add user to /etc/aliases
* generate-ldif: add a section for postgresql
* logstash: tmp directory can be customized
* logstash: max memory is set to 512M by default
* logstash: version 6.x is installed by default
* mysql: add a variable to prevent mysql from restarting
* networkd-to-ifconfig: add a role to switch from networkd to ifconfig
* webapps/evoadmin-web: add users to /etc/aliases
* redis: add support for multi instances
* nagios-nrpe: add check_redis_instances
### Changed
* dovecot: stronger TLS configuration
### Fixed
* apache: cleaner way to overwrite the server status suffix
* packweb-apache: don't regenerate phpMyAdmin suffix each time
* nginx: cleaner way to overwrite the server status suffix
* redis: add missing tags
## [9.3.2] - 2018-09-06
### Added
* minifirewall: add a variable to disable the restart handler
* minifirewall: add a variable to force a restart of the firewall (even with no change)
* minifirewall: improve variables values and documentation
### Changed
* dovecot: enable SSL/TLS by default with snakeoil certificate
### Fixed
### Security
## [9.3.1] - 2018-08-30
### Added
* metricbeat: new variables to configure elasticsearch hosts and auth
## [9.3.0] - 2018-08-24
### Added
* elasticsearch: tmpdir configuration compatible with 5.x also
* elasticsearch: add http.publish_host variable
* evoacme: disable old certbot cron also in cron.daily
* evocheck: detect installed packages even if "held" by APT (manual fix)
* evocheck: the crontab is updated by the role (default: `True`)
* evolinux-base: add mail related aliases
* evolinux-todo: new role, to help maintain a file of todo tasks
* fail2ban: add a variable to disable the ssh filter (default: `False`)
* etc-git: install a script to optimize the repository each month
* fail2ban: add a variable to update the list of ignored IP addresses/blocs (default: `False`)
* generate-ldif: detect installed packages even if "held" by APT
* java: support for Oracle JRE
* kibana: log messages go to /var/log/kibana/kibana.log
* metricbeat: add a role (copied from filebeat)
* munin: properly rename Munin cache directory
* mysql: add an option to install the client development libraries (default: `False`)
* mysql: add a few variables to customize the configuration
* nagios-nrpe: add check_postgrey
### Changed
* etc-git: some entries of .gitignore are mandatory
* evocheck: update upstream script
* evolinux-base: improve hostname configuration (real vs. internal)
* evolinux-base: use the "evolinux-todo" role
* evolinux-users: add sudo permission for bkctld check
* java8: renamed to java (java8 symlinked to java for backward compatibility)
* minifirewall: the tail file can be overwritten, or not (default: `True`)
* nagios-nrpe: use bkctld internal check instead of nrpe plugin
* php: reorganization of the role for Sury overrides and more clear configuration
* redmine: use .my.cnf for mysql password
* rbenv: change default Ruby version (2.5.1)
* rbenv: switch from copy to lineinfile for default gems
* remount-usr: mount doesn't report a change
* squid: add a few news sites to the whitelist
* tomcat: better nrpe check output
* kvm-host: install kvm-tools package instead of copying add-vm.sh
### Fixed
* apache: logrotate replacement is more subtle/precise. It replaces only the proper directive and not every occurence of the word.
* bind: chroot-bind.sh must not be executed in check mode
* evoacme: fix module detection in apache config
* fail2ban: fix fail2ban_ignore_ips definition
* mysql-oracle: fix configuration directory variable
* php: fpm slowlog needs an absolute path
* roundcube: add missing slash to https redirection
## [9.2.0] - 2018-05-16
### Changed
* filebeat: install version 6.x by default
* filebeat: cleanup unused code
* squid: add some domaine and fix broken restrictions
* elasticsearch: defaults to version 6.x
### Fixed
* evolinux-users: secondary groups are comma-separated
* ntpd: fix configuration (server and ACL)
* varnish: don't fork the process on startup with systemd
## [9.1.9] - 2018-04-24
### Added
### Changed
* apache: customize logrotate (52 weeks)
* evolinux: groups for SSH configuration are used with Debian 10 and later
* evolinux-base: fail2ban is not enabled by default
* evolinux-users: refactoring of the SSH configuration
* mysql-oracle: copy evolinux config files in mysql.cond.d
* mysql/mysql-oracle: mysqltuner cron scripts is 0755
* generate-ldif: add a minifirewall service when /etc/default/minifirewall exists
## [9.1.8] - 2018-04-16
### Changed
* packweb-apache: use dependencies instead of include_role for apache and php roles
### Fixed
* mysql: use check_mode for apg command (Fix --check)
* mysql/mysql-oracle: properly reload systemd
* packweb-apache: use check_mode for apg command (Fix --check)
## [9.1.7] - 2018-04-06
### Added
* added a few become attributes where missing
* etc-git: add tags for Ansible
* evolinux-base: install ncurses-term package
* haproxy: install Munin plugins
* listupgrade: add service restart notification for Squid and libstdc++6
* minifirewall: add "check_minifirewall" Nagios plugin (and `minifirewall_status` script)
* mysql-oracle: new role to install MySQL 5.7 with Oracle packages
* mysql: remount /usr before creating scripts directory
* nagios-nrpe: add "check_open_files" plugin
* nagios-nrpe: mark plugins as executable
* nodejs: Yarn package manager can be installed (default: `false`)
* packweb-apache: choose mysql variant (default: `debian`)
* postfix: add lines in /etc/.gitignore
* proftpd: use "proftpd_accounts" list to manage ftp accounts
* redmine: added missing tags
### Changed
* elasticsearch: RESTART_ON_UPGRADE is configurable (default: `true`)
* elasticsearch: use ES_TMPDIR variable for custom tmpdir, (from `/etc/default/elasticsearch` instead of changing `/etc/elesticsearch/jvm.options`).
* evolinux-base: Exec the firewall tasks sooner (to avoid dependency issues)
* evolinux-users: split AllowGroups/AllowUsers modes for SSH directives
* mongodb: allow unauthenticated packages for Jessie
* mongodb: configuration is forced by default but it's configurable (default: `false`)
* mongodb: rename logrotate script
* nagios-nrpe: mark plugins as executable
* nginx: don't debug variables in verbosity 0
* nginx: package name can be specified (default: `nginx-full`)
* php: fix FPM custom file permissions
* php: more tasks notify FPM handler to restart if needed
* webapps/evoadmin-web: Fail if variable evoadmin_contact_email isn't defined
### Fixed
* dovecot: fix support of plus sign
* mysql/mysql-oracle: mysqltuner cron task is executable
* nginx: fix basic auth for default vhost
* rbenv: fix become user issue with copy tasks
## [9.1.6] - 2018-02-02
### Added
* mongodb: install python-pymongo for monitoring
* nagios-nrpe: allowed_hosts can be updated
### Changed
* Changelog: explain the versioning scheme
* Changelog: add a release date for 9.1.5
* evoacme: exclude typical certbot directories
### Fixed
* fail2ban: fix horrible typo, Python is not Ruby
* nginx: fix servers status dirname
## [9.1.5] - 2018-01-18
### Added
* There is a changelog!
* redis: configuration variable for protected mode (v3.2+)
* evolinux-users: users are in "adm" group for Debian 9 or later
* evolinx-base: purge locate/mlocate packages
* evolinx-base: create /etc/evolinux if missing
* many Ansible tags for easier fine grained execution of playbooks
* apache/nginx: server status suffix management
* unbound: retrieve list of root DNS servers
* redmine: ability to install themes and plugins
### Changed
* rbenv: Ruby 2.5 becomes the default version
* evocheck: update upstream version embedded in role (c993244)
* bind: keep 52 weeks of logs
### Fixed
* squid: different logrotate file for Jessie or Stretch+
* evoacme: don't invoke evoacme if no vhost is found
* evomaintenance: explicit quotes in config file
* redmine: force xpath gem < 3.0.0
### Security
* evomaintenance: fix permissions for config file
## [9.1.4] - 2017-12-20
### Added
* php: install php5-intl (for Jessie) and php-intl (for Debian 9 or later)
* mysql: add a check_mysql_slave in nrpe configuration
* ldap: slapd tcp port is configurable
* elasticsearch: broader patterns for log rotation
### Changed
* split IP lists in 2 default and additional for easier customization.
### Fixed
* minifirewall: allow outgoing SSH connections over IPv6
* nodejs: rename source.list file
### Security
* evoadmin-web: change config.local.php file permissions
* evolinux-base: change default_www file permissions
## [9.1.3] 2017-12-08
### Added
* evolinux-base: install traceroute package
* evolinux-base/ntpd: purge openntpd
* tomcat: add Tomcat 8 cmpatibility
* log2mail: add "The total blob data length" pattern for MySQL
* nagios-nrpe: add bkctld check in evolix.cfg
* varnish: reload or restart if needed
* rabbitmq: add a munin plugin and an NRPE check
* minifirewall: add debug for variables
* elastic: option for stack main version
### Changed
* nginx: rename Let's Encrypt snippet
* nginx: simpler apt preferences for backports
* generate-ldif: add clamd service instead of clamav_db
* mysql: parameterize evolinux config files
* rbenv: use Rbenv 1.1.1 and Ruby 2.4.2 by default
* elasticsearch: update curator debian repository
* evoacme: crontab management
* evoacme: better documentation
* mongodb: comatible with Stretch
### Removed
* mongodb: logfile/pidfile are not configurable on Jessie
* minifirewall: remove zidane.evolix.net from HTTPSITES
### Fixed
* nginx: fix munin CGI graphs
* ntpd: fix default configuration (localhost only)
* logstash: fix permissions on pipeline configuration
* postfix/spamassassin: add user in cron job
* php: php.ini custom file are now readable
* hostname customization needs the dbus package
## [9.1.2] 2017-12-05
### Fixed
* listupgrade: remount /usr as rw
## [9.1.1] 2017-11-21
### Added
* amazon-ec2: add egress rules
### Fixed
* evoacme: fix multiple bugs
## [9.1.0] 2017-11-19
_Warning: huge release, many entries are missing below._
### Added
* amazon-ec2: new role, for EC2 instances creation
* Move /usr rw remount into remount-usr role
* kibana: host and basepath configuration
* kibana: move optimize and data to /var
* logstash: daily job for log rotation
* elasticsearch: daily job for log rotation
* roundcube: add link in default site index
* nagios-nrpe: add opendkim check
### Changed
* Combine evolix and additional trusted IP addresses
* amazon-ec2: split tasks
* apt: don't upgrade by default
* postfix: extract main.cf md5sum into variables
* evolinux-base: cache hwraid pgp key locally
* evoacme: improve cron task
* elasticsearch: use elastic.list APT source list for curator
* ldap: better variables
### Fixed
* fail2ban: create config hierarchy beforehand
* elasticsearch: fix datadir/tmpdir conditions
* elastic: remove double ".list" suffix
* nagios-nrpe: fix check_free_mem for OpenBSD 6.2
* nagios-nrpe: fix check_amavis
### Removed
### Security
## [9.0.1] 2017-10-02
### Added
* haproxy: add a Nagios check
* php: add "sury" mode for PHP 7.1 on Stretch
* minifirewall: explicit dependency on iptables
* apt: remove Gandi source files
* docker-host: new variable for docker home
### Changed
* php: install php5/php package after fpm/libapache2-mod-php
### Fixed
* mysql: add "REPLICATION CLIENT" privilege for nrpe
* evoadmin-web: revert from variables to keywords in the templates
* evoacme: many fixes
* etc-git: detect user if root (without su or sudo)
* docker-host: clean override of docker systemd unit
* varnish: fix systemd unit override
## [9.0.0] 2017-09-19
First official release

View file

@ -1,22 +0,0 @@
FROM debian:stretch-slim
ENV ROLES_VERSION=${ROLES_VERSION:-unstable}
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
git \
ansible \
&& rm -rf /var/lib/apt/lists/*
RUN ansible-galaxy install --force \
--roles-path /etc/ansible \
"git+https://gitea.evolix.org/evolix/ansible-roles.git,${ROLES_VERSION},roles"
ENV ANSIBLE_FORCE_COLOR=1
ENV ANSIBLE_HOST_KEY_CHECKING=false
ENV ANSIBLE_RETRY_FILES_ENABLED=false
ENV PYTHONUNBUFFERED=1
WORKDIR /data
ENTRYPOINT ["ansible-playbook"]

View file

@ -1,63 +1,10 @@
# Ansible-roles
A repository for Ansible roles used by Evolix on Debian GNU/Linux 9 (stretch) servers.
Few roles are also be compatible with Debian GNU/Linux 8 (jessie) servers.
A repository for Ansible roles used by Evolix.
It contains only roles, everything else is available at
https://gitea.evolix.org/evolix/ansible-public
## Branches
https://forge.evolix.org/projects/ansible-public
The **stable** branch contains roles that we consider ready for production.
The **unstable** branch contains not sufficiently tested roles (or evolutions on existing roles) that we don't consider ready for production yet.
Many feature branches may exist in the repository. They represent "work in progress". They may be used, for testing purposes.
## Install and usage
First, check-out the repository :
```
$ cd ~/GIT/
$ git clone https://gitea.evolix.org/evolix/ansible-roles
```
Then, add its path to your ansible load path :
```
$ vim ~/.ansible.cfg
[defaults]
roles_path = $HOME/GIT/ansible-roles
```
Then, include roles in your playbooks :
```
- hosts: all
gather_facts: yes
become: yes
roles:
- etc-git
- evolinux-base
```
## Contributing
Contributions are welcome, especially bug fixes and "ansible good practices". They will be merged in if they are consistent with our conventions and use cases. They might be rejected if they introduce complexity, cover features we don't need or don't fit "style".
Before starting anything of importance, we suggest contacting us to discuss what you'd like to add or change.
Our conventions are available in the "ansible-public":https://gitea.evolix.org/evolix/ansible-public repository, in the CONVENTIONS.md file.
All modifications should be documented in the CHANGELOG file, to help review releases. We encourage atomic commits, on a single role, and with the CHANGELOG in the same commit.
## Workflow
The ideal and most typical workflow is to create a branch, based on the "unstable" branch. The branch should have a descriptive name (a ticket/issue number is great). The branch can be treated as a pull-request or merge-request. It should be propery tested and reviewed before merging into "unstable".
Changes that don't introduce significant changes — or that must go faster that the typical workflow — can be commited directly into "unstable".
Hotfixes, can be prepared on a new branch, based on "stable" or "unstable" (to be decided by the author). When ready, it can be merged back to "stable" for immediate deployment and to "unstable" for proper backporting.
Other workflow are not forbidden, but should be discussed in advance.

View file

@ -31,7 +31,7 @@ suites:
playbook: ./tests/test.yml
verifier:
patterns:
- evolinux-users/tests/spec/evolinux-users_spec.rb
- admin-users/tests/spec/admin-users_spec.rb
bundler_path: '/usr/local/bin'
rspec_path: '/usr/local/bin'

27
admin-users/README.md Normal file
View file

@ -0,0 +1,27 @@
# admin-users
Creates admin users accounts, based on a configuration data structure.
## Tasks
Everything is in the `tasks/main.yml` file.
## Available variables
The variable `admin_users` must be a "dict" of one or more users :
```
admin_users:
foo:
name: foo
uid: 1001
fullname: 'Mr Foo'
password_hash: 'sdfgsdfgsdfgsdfg'
ssh_key: 'ssh-rsa AZERTYXYZ'
bar:
name: bar
uid: 1002
fullname: 'Mr Bar'
password_hash: 'gsdfgsdfgsdfgsdf'
ssh_key: 'ssh-rsa QWERTYUIOP'
```

View file

@ -0,0 +1,2 @@
---
admin_users: {}

View file

@ -0,0 +1,5 @@
---
- name: reload sshd
service:
name: sshd
state: reloaded

19
admin-users/meta/main.yml Normal file
View file

@ -0,0 +1,19 @@
galaxy_info:
author: Evolix
description: Creates admin users accounts.
issue_tracker_url: https://forge.evolix.org/projects/ansible-roles/issues
license: GPLv2
min_ansible_version: 2.2
platforms:
- name: Debian
versions:
- jessie
dependencies: []
# List your role dependencies here, one per line.
# Be sure to remove the '[]' above if you add dependencies
# to this list.

View file

@ -0,0 +1,137 @@
---
- name: "Test if uid exists for '{{ user.name }}'"
command: 'getent passwd {{ user.uid }}'
register: uidisbusy
failed_when: False
changed_when: False
check_mode: no
- name: "Add Unix account with classical uid for '{{ user.name }}'"
user:
state: present
uid: '{{ user.uid }}'
name: '{{ user.name }}'
comment: '{{ user.fullname }}'
shell: /bin/bash
password: '{{ user.password_hash }}'
update_password: on_create
when: uidisbusy.rc != 0
- name: "Add Unix account with random uid for '{{ user.name }}'"
user:
state: present
name: '{{ user.name }}'
comment: '{{ user.fullname }}'
shell: /bin/bash
password: '{{ user.password_hash }}'
update_password: on_create
when: uidisbusy.rc == 0
- name: "Fix perms on homedirectory for '{{ user.name }}'"
file:
name: '/home/{{ user.name }}'
mode: "0700"
state: directory
- name: is evomaintenance installed?
stat:
path: "/usr/share/scripts/evomaintenance.sh"
register: evomaintenance_script
check_mode: no
- name: "Add evomaintenance trap for '{{ user.name }}'"
lineinfile:
state: present
dest: '/home/{{ user.name }}/.profile'
insertafter: EOF
line: 'trap "sudo /usr/share/scripts/evomaintenance.sh" 0'
when: evomaintenance_script.stat.exists
- name: "Create .ssh directory for '{{ user.name }}'"
file:
dest: '/home/{{ user.name }}/.ssh/'
state: directory
mode: "0700"
owner: '{{ user.name }}'
group: '{{ user.name }}'
- name: "Add user's SSH public key for '{{ user.name }}'"
authorized_key:
user: "{{ user.name }}"
key: "{{ user.ssh_key }}"
state: present
# we must double-escape caracters, because python
- name: verify AllowUsers directive
shell: "egrep '^AllowUsers' /etc/ssh/sshd_config"
changed_when: False
failed_when: False
register: grep_allowusers_ssh
check_mode: no
- name: "Add AllowUsers sshd directive for '{{ user.name }}'"
lineinfile:
dest: /etc/ssh/sshd_config
line: "\nAllowUsers {{ user.name }}"
insertafter: '^# ForceCommand cvs server'
validate: '/usr/sbin/sshd -T -f %s'
notify: reload sshd
when: grep_allowusers_ssh.rc != 0
- name: "Modify AllowUsers sshd directive for '{{ user.name }}'"
replace:
dest: /etc/ssh/sshd_config
regexp: '^(AllowUsers ((?!{{ user.name }}).)*)$'
replace: '\1 {{ user.name }}'
validate: '/usr/sbin/sshd -T -f %s'
notify: reload sshd
when: grep_allowusers_ssh.rc == 0
- name: verify Match User directive
command: "grep 'Match User' /etc/ssh/sshd_config"
changed_when: False
failed_when: False
register: grep_matchuser_ssh
check_mode: no
- name: "Add Match User sshd directive for '{{ user.name }}'"
lineinfile:
dest: /etc/ssh/sshd_config
line: "\nMatch User {{ user.name }}\n PasswordAuthentication no"
validate: '/usr/sbin/sshd -T -f %s'
notify: reload sshd
when: grep_matchuser_ssh.rc != 0
- name: "Modify Match User's sshd directive for '{{ user.name }}'"
replace:
dest: /etc/ssh/sshd_config
regexp: '^(Match User ((?!{{ user.name }}).)*)$'
replace: '\1,{{ user.name }}'
validate: '/usr/sbin/sshd -T -f %s'
notify: reload sshd
when: grep_matchuser_ssh.rc == 0
- name: Verify Evolinux sudoers file presence
template:
src: sudoers_debian.j2
dest: /etc/sudoers.d/evolinux
force: false
validate: '/usr/sbin/visudo -cf %s'
register: copy_sudoers_evolinux
- name: Verify Evolinux sudoers file permissions
file:
path: /etc/sudoers.d/evolinux
mode: "0440"
state: file
- name: "Add user in sudoers file for '{{ user.name }}'"
replace:
dest: /etc/sudoers.d/evolinux
regexp: '^(User_Alias\s+ADMINS\s+=((?!{{ user.name }}).)*)$'
replace: '\1,{{ user.name }}'
validate: '/usr/sbin/visudo -cf %s'
when: not copy_sudoers_evolinux.changed
- meta: flush_handlers

View file

@ -0,0 +1,15 @@
---
- fail:
msg: "Error: empty variable 'admin_users'!"
when: admin_users == {}
- include: adduser_debian.yml
vars:
user: "{{ item.value }}"
with_dict: "{{ admin_users }}"
when: ansible_distribution == "Debian"
# - include: adduser_openbsd.yml user={{ item.value }}
# with_dict: "{{ admin_users }}"
# when: ansible_distribution == "OpenBSD"

View file

@ -0,0 +1,10 @@
Defaults umask=0077
Cmnd_Alias MAINT = /usr/share/scripts/evomaintenance.sh, /usr/share/scripts/listupgrade.sh, /usr/bin/apt, /bin/mount
User_Alias ADMINS = {{ user.name }}
nagios ALL = NOPASSWD: /usr/lib/nagios/plugins/check_procs
nagios ALL = (clamav) NOPASSWD: /usr/bin/clamscan /tmp/safe.txt
ADMINS ALL = (ALL:ALL) ALL
ADMINS ALL = NOPASSWD: MAINT

View file

@ -2,7 +2,7 @@
- hosts: test-kitchen
vars:
evolinux_users:
admin_users:
foo:
name: foo
uid: 1001
@ -20,4 +20,4 @@
# state: directory
roles:
- role: evolinux-users
- role: admin-users

View file

@ -1,5 +0,0 @@
---
ldap_hostname: "{{ ansible_hostname }}"
ldap_domain: "{{ ansible_domain }}"
ldap_suffix: "dc={{ ldap_hostname }},dc={{ ldap_domain.split('.')[-2] }},dc={{ ldap_domain.split('.')[-1] }}"

View file

@ -1,2 +0,0 @@
#!/bin/bash
find /var/lib/amavis/virusmails/ -type f -mtime +30 -delete

View file

@ -1,5 +0,0 @@
---
- name: restart amavis
ansible.builtin.service:
name: amavis
state: restarted

View file

@ -1,27 +0,0 @@
---
- name: install Amavis
ansible.builtin.apt:
name:
- postgrey
- amavisd-new
state: present
tags:
- amavis
- name: configure Amavis
ansible.builtin.template:
src: amavis.conf.j2
dest: /etc/amavis/conf.d/49-evolinux-defaults
mode: "0644"
notify: restart amavis
tags:
- amavis
- name: Install purge custom cron
ansible.builtin.copy:
src: amavis_purge_virusmails
dest: /etc/cron.daily/amavis_purge_virusmails
mode: "0755"
tags:
- amavis
- amavis_purge_cron

View file

@ -1,57 +0,0 @@
use strict;
## Liste des domaines considérés comme locaux
#@local_domains_acl = qw(.);
@local_domains_acl = (".example.net","example.com");
# On customise la ligne ajoutée dans les entêtes
$X_HEADER_LINE = "by Amavis at $mydomain";
# On precise les FROM pour etre (bugs dans certaines version d'Amavis)
$mailfrom_notify_admin = "postmaster\@$mydomain";
$mailfrom_notify_recip = "postmaster\@$mydomain";
$mailfrom_notify_spamadmin = "postmaster\@$mydomain";
# Notifications de fichiers bannis / virus
$virus_admin = "postmaster\@$mydomain";
# Ne pas recevoir des notifications pour les mails UNCHECKED
delete $admin_maps_by_ccat{&CC_UNCHECKED};
# Que faire avec les messages détectés
$final_virus_destiny = D_DISCARD;
$final_banned_destiny = D_BOUNCE;
$final_spam_destiny = D_BOUNCE;
$final_bad_header_destiny = D_PASS;
# Pour recevoir des bounces (mails originals) des fichiers bloqués / virus
#$banned_quarantine_to = "banned\@$mydomain";
#$virus_quarantine_to = "virus\@$mydomain";
# Note tueuse
$sa_tag2_level_deflt = 6.31;
# Pour un comportement "normal" de SA
$sa_tag_level_deflt = -1999;
$sa_kill_level_deflt = 1999;
$sa_dsn_cutoff_level = -99;
$sa_spam_subject_tag = '[SPAM]';
# log
$log_level = 2;
# En fonction besoin/ressources, on a juste le nbre de process
$max_servers = 3;
$enable_ldap = 1;
$default_ldap = {
hostname => '127.0.0.1', tls => 0,
base => '{{ ldap_suffix | mandatory }}', scope => 'sub',
query_filter => '(&(mailacceptinggeneralid=%m)(isActive=TRUE))'
};
# Activer l'antivirus et antivirus
@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
1; # ensure a defined return

View file

@ -1,60 +0,0 @@
# amazon-ec2
Manage Amazon EC2 instances.
This role is intended to be called before any other role to setup and start EC2
instances.
## Dependencies
You should first ensure that you have `python-boto` package installed on your
machine and an Amazon security access key pair created for your account.
## Tasks
By default, this role does nothing (no `main.yml` file).
* `setup.yml`: create a security group and ssh keys
* `create-instance.yml`: create new EC2 instances
* `post-install.yml`: remove admin user created on Debian instances
## Variables
- `aws_access_key` and `aws_secret_key`: your AWS credentials
- `aws_region`: where to create instances. Default: ca-central-1
- `ec2_public_ip`: assign public elastic IP address. Default: False
- `ec2_instance_count`: how many instance to launch. Default: 1
- `ec2_security_group: EC2 security group to use. See
ec2_evolinux_security_group in `defaults/main.yml` to define your own.
Default: ec2_evolinux_security_group
- `ec2_base_ami`: EC2 image to use. Default is to use Debian official ones,
depending on the region
- `ec2_instance_type`: EC2 instance type to use
- `ssh_pubkey_file`: SSH public key file to push to AWS. Do not try to put
your ED25519 key here, AWS does not support it. Default: ~/.ssh/id_rsa.pub
- `ec2_keyname: a name to give to your public key on AWS. Default is to use
$USER environment variable.
## Examples
In your main evolinux playbook put this play before Evolinux one:
```
---
- name: Prepare Amazon EC2 instance
hosts: localhost
gather_facts: False
vars:
aws_access_key:
aws_secret_key:
# Any other variable you want to set.
tasks:
- include_role:
name: evolix/amazon-ec2
tasks_from: create-instance.yml
```
See amazon-ec2-evolinux.yml for an almost ready-to-use playbook to set up
Amazon EC2 instances running Evolinux.

View file

@ -1,62 +0,0 @@
---
- name: Prepare Amazon EC2 instance
hosts: localhost
gather_facts: False
vars:
aws_access_key:
aws_secret_key:
aws_region: ca-central-1
tasks:
- ansible.builtin.include_role:
name: evolix/amazon-ec2
tasks_from: setup.yml
- ansible.builtin.include_role:
name: evolix/amazon-ec2
tasks_from: create-instance.yml
- name: Install Evolinux
hosts: launched-instances
become: true
vars_files:
- 'vars/secrets.yml'
vars:
admin_users: "{{ admin_users }}"
minifirewall_trusted_ips: "{{ trusted_ips }}"
fail2ban_ignore_ips: "{{ trusted_ips }}"
evolinux_hostname:
evolinux_domain:
evolinux_fqdn:
evolinux_internal_hostname:
minifirewall_public_ports_tcp: [80, 443]
minifirewall_public_ports_udp: []
minifirewall_semipublic_ports_tcp: [22]
nagios_nrpe_allowed_hosts: "{{ trusted_ips }}"
roles:
- etc-git
- evolinux-base
- admin-users
- munin
- minifirewall
- fail2ban
- nagios-nrpe
- listupgrade
- evomaintenance
- evocheck
- packweb-apache
- mysql
post_tasks:
- ansible.builtin.include_role:
name: evolix/etc-git
tasks_from: commit.yml
vars:
commit_message: "Ansible post-run Evolinux playbook"
- include_role:
name: evolix/evocheck
tasks_from: exec.yml

View file

@ -1,139 +0,0 @@
---
aws_region: ca-central-1
ec2_public_ip: False
ec2_instance_count: 1
ec2_security_group: "{{ ec2_evolinux_security_group }}"
ec2_base_ami: "{{ ec2_debian_base_ami[aws_region] }}"
ec2_instance_type: t2.micro
# Note: Do not try to put your ED25519 key here, AWS does not support it...
ssh_pubkey_file: ~/.ssh/id_rsa.pub
ec2_keyname: "{{ lookup('env', 'USER') }}"
# From https://wiki.debian.org/Cloud/AmazonEC2Image/Stretch
ec2_debian_base_ami:
ap-northeast-1: ami-032dd665
ap-northeast-2: ami-e174ac8f
ap-south-1: ami-6e7a3e01
ap-southeast-1: ami-41365b22
ap-southeast-2: ami-51f61333
ca-central-1: ami-18239d7c
eu-central-1: ami-11bb0e7e
eu-west-1: ami-d037cda9
eu-west-2: ami-ece3f388
sa-east-1: ami-a24635ce
us-east-1: ami-ac5e55d7
us-east-2: ami-9fbb98fa
us-west-1: ami-560c3836
us-west-2: ami-fa18f282
ec2_evolinux_security_group:
name: evolinux-default
description: Evolinux default security group
rules:
- proto: icmp
cidr_ip: 0.0.0.0/0
from_port: -1
to_port: -1
- proto: tcp
from_port: 22
to_port: 22
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 5666
to_port: 5666
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 53
to_port: 53
cidr_ip: 0.0.0.0/0
- proto: udp
from_port: 53
to_port: 53
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 389
to_port: 389
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 636
to_port: 636
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 143
to_port: 143
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 993
to_port: 993
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 110
to_port: 110
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 995
to_port: 995
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 25
to_port: 25
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 80
to_port: 80
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 443
to_port: 443
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 21
to_port: 21
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 20
to_port: 20
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 5001
to_port: 5001
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 465
to_port: 465
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 587
to_port: 587
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 8181
to_port: 8181
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 8282
to_port: 8282
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 9091
to_port: 9091
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 2222
to_port: 2222
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 22222
to_port: 22222
cidr_ip: 0.0.0.0/0
- proto: tcp
from_port: 2223
to_port: 2223
cidr_ip: 0.0.0.0/0
- proto: udp
from_port: 123
to_port: 123
cidr_ip: 0.0.0.0/0
rules_egress:
- proto: all
cidr_ip: 0.0.0.0/0

View file

@ -1,36 +0,0 @@
---
- name: Launch new instance(s)
amazon.aws.ec2:
state: present
aws_access_key: "{{ aws_access_key }}"
aws_secret_key: "{{ aws_secret_key }}"
region: "{{ aws_region }}"
image: "{{ ec2_base_ami }}"
instance_type: "{{ ec2_instance_type }}"
count: "{{ ec2_instance_count }}"
assign_public_ip: "{{ ec2_public_ip }}"
group: "{{ ec2_security_group.name }}"
key_name: "{{ ec2_keyname }}"
wait: yes
register: ec2
- name: Add newly created instance(s) to inventory
ansible.builtin.add_host:
hostname: "{{ item.public_dns_name }}"
groupname: launched-instances
ansible_user: admin
ansible_ssh_common_args: "-o StrictHostKeyChecking=no"
loop: "{{ ec2.instances }}"
- ansible.builtin.debug:
msg: "Your newly created instance is reachable at: {{ item.public_dns_name }}"
loop: "{{ ec2.instances }}"
- name: Wait for SSH to come up on all instances (give up after 2m)
ansible.builtin.wait_for:
state: started
host: "{{ item.public_dns_name }}"
port: 22
timeout: 120
loop: "{{ ec2.instances }}"

View file

@ -1,5 +0,0 @@
---
- name: Remove admin user
ansible.builtin.user:
name: admin
state: absent

View file

@ -1,22 +0,0 @@
---
- name: Create default security group
amazon.aws.ec2_group:
name: "{{ ec2_security_group.name }}"
state: present
aws_access_key: "{{ aws_access_key }}"
aws_secret_key: "{{ aws_secret_key }}"
region: "{{ aws_region }}"
description: "{{ ec2_security_group.description }}"
rules: "{{ ec2_security_group.rules }}"
rules_egress: "{{ ec2_security_group.rules_egress }}"
- name: Create key pair
amazon.aws.ec2_key:
name: "{{ ec2_keyname }}"
state: present
aws_access_key: "{{ aws_access_key }}"
aws_secret_key: "{{ aws_secret_key }}"
region: "{{ aws_region }}"
key_material: "{{ item }}"
with_file: "{{ ssh_pubkey_file }}"

23
ansible-log/files/info.sh Normal file
View file

@ -0,0 +1,23 @@
#!/bin/sh
ppid=$(ps -p "$$" -o ppid=)
pppid=$(ps -p "$ppid" -o ppid=)
ppppid=$(ps -p "$pppid" -o ppid=)
ps --pid "$ppppid" -o command=
echo ""
if [ -d .git ]; then
git config --get remote.origin.url
git log --pretty="%h - %s" -3
fi
ansible_cfg=$(ansible --version|grep "config file"|awk -F'=' '{print $2}'|xargs)
roles_path=$(grep "roles_path" $ansible_cfg|awk -F'=' '{print $2}'|sed "s|~|$HOME|"|xargs)
find $roles_path -type d -name .git|while read git; do
git=$(basename "$git")
echo ""
git -C $roles_path config --get remote.origin.url
git -C $roles_path log --pretty="%h - %s" -3
done

View file

@ -0,0 +1,47 @@
---
- name: Get info on local Ansible environment
local_action: "template src=ansible-info.j2 dest=/tmp/ansible-playbook-{{ ansible_date_time.epoch }}.log"
changed_when: no
check_mode: no
become: no
tags:
- always
- name: Get info on local environment with info.sh
local_action: "script info.sh >> /tmp/ansible-playbook-{{ ansible_date_time.epoch }}.log"
changed_when: no
check_mode: no
become: no
tags:
- always
- name: Create ansible log dir on remote server
file:
path: /var/log/ansible
state: directory
owner: root
group: adm
mode: "0750"
check_mode: no
tags:
- always
- name: Copy ansible-playbook log on remote server
copy:
src: "/tmp/ansible-playbook-{{ ansible_date_time.epoch }}.log"
dest: "/var/log/ansible/ansible-playbook-{{ ansible_date_time.epoch }}.log"
owner: root
group: adm
mode: "0640"
changed_when: no
check_mode: no
tags:
- always
- name: Purge local log
local_action: "file path=/tmp/ansible-playbook-{{ ansible_date_time.epoch }}.log state=absent"
changed_when: no
check_mode: no
become: no
tags:
- always

View file

@ -0,0 +1,10 @@
date: {{ ansible_date_time.iso8601 }}
inventory: {{ inventory_file }}
playbook_dir: {{ playbook_dir}}
hosts:
{{ ansible_play_hosts | to_nice_yaml }}
roles:
{{ role_names | to_nice_yaml }}

View file

@ -6,16 +6,13 @@ Install Apache
Everything is in the `tasks/main.yml` file for now.
An `ip_whitelist.yml` standalone task file is available to update IP adresses whitelist without rolling the whole role.
## Available variables
Main variables are :
* `apache_ipaddr_whitelist_present` : list of IP addresses to have in the private whitelist ;
* `apache_ipaddr_whitelist_absent` : list of IP addresses **not** to have in the whitelist;
* `apache_private_ipaddr_whitelist_present` : list of IP addresses to have in the private whitelist ;
* `apache_private_ipaddr_whitelist_absent` : list of IP addresses **not** to have in the whitelist;
* `apache_private_htpasswd_present` : list of users to have in the private htpasswd ;
* `apache_private_htpasswd_absent` : list of users to **not** have in the private htpasswd.
* `log2mail_alert_email`: email address to send Log2mail messages to (default: `general_alert_email`).
The full list of variables (with default values) can be found in `defaults/main.yml`.

View file

@ -1,27 +1,14 @@
---
apache_default_ipaddr_whitelist_ips: []
apache_additional_ipaddr_whitelist_ips: []
apache_ipaddr_whitelist_present: "{{ apache_default_ipaddr_whitelist_ips | union(apache_additional_ipaddr_whitelist_ips) | unique }}"
apache_ipaddr_whitelist_absent: []
apache_private_ipaddr_whitelist_present: []
apache_private_ipaddr_whitelist_absent: []
apache_private_htpasswd_present: []
apache_private_htpasswd_absent: []
apache_default_redirect_url: "http://evolix.fr"
apache_evolinux_default_enabled: True
apache_evolinux_default_ssl_cert: /etc/ssl/certs/ssl-cert-snakeoil.pem
apache_evolinux_default_ssl_key: /etc/ssl/private/ssl-cert-snakeoil.key
apache_serverstatus_host: 127.0.0.1
apache_phpmyadmin_suffix: ""
apache_serverstatus_suffix: ""
apache_serverstatus_suffix_file: "/etc/evolinux/apache_serverstatus_suffix"
apache_log2mail_include: True
apache_munin_include: True
general_alert_email: "root@localhost"
log2mail_alert_email: Null
apache_logrotate_frequency: daily
apache_logrotate_rotate: 365
apache_mpm: "itk"

View file

@ -0,0 +1,320 @@
Content-language: cs
Content-type: text/html; charset=UTF-8
Body:----------cs--
<!--#set var="CONTENT_LANGUAGE" value="cs"
--><!--#set var="TITLE" value="Chybná brána!"
--><!--#include virtual="include/top.html" -->
Proxy server obdržel od nadřazeného
serveru chybnou odpověď.
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
<!--#include virtual="include/spacer.html" -->
<!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------cs--
Content-language: de
Content-type: text/html; charset=UTF-8
Body:----------de--
<!--#set var="CONTENT_LANGUAGE" value="de"
--><!--#set var="TITLE" value="Fehlerhaftes Gateway!"
--><!--#include virtual="include/top.html"-->
Der Proxy-Server erhielt eine fehlerhafte Antwort
eines &uuml;bergeordneten Servers oder Proxies.
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
<!--#include virtual="include/spacer.html" -->
<!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------de--
Content-language: en
Content-type: text/html; charset=UTF-8
Body:----------en--
<!--#set var="TITLE" value="Bad Gateway!"
--><!--#include virtual="include/top.html" -->
The proxy server received an invalid
response from an upstream server.
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
<!--#include virtual="include/spacer.html" -->
<!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------en--
Content-language: es
Content-type: text/html
Body:----------es--
<!--#set var="TITLE" value="&iexcl;Puerta de enlace err&oacute;nea!" -->
<!--#include virtual="include/top.html" -->
El servidor 'proxy' ha recibido; informaci&oacute;n
no v&aacute;lida del servidor de origen.
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
<!--#include virtual="include/spacer.html" -->
<!--#echo var="REDIRECT_ERROR_NOTES" -->
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------es--
Content-language: fr
Content-type: text/html; charset=UTF-8
Body:----------fr--
<!--#set var="CONTENT_LANGUAGE" value="fr"
--><!--#set var="TITLE" value="Gateway incorrecte!"
--><!--#include virtual="include/top.html" -->
Le serveur proxy a re&ccedil;u une r&eacute;ponse
incorrecte de la part d'un serveur sup&eacute;rieur.
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
<!--#include virtual="include/spacer.html" -->
<!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------fr--
Content-language: ga
Content-type: text/html; charset=UTF-8
Body:----------ga--
<!--#set var="CONTENT_LANGUAGE" value="ga"
--><!--#set var="TITLE" value="Geata m&iacute;ceart!"
--><!--#include virtual="include/top.html" -->
Fuair an seachfhreastala&iacute; freagairt neamhbhail&iacute;
&oacute; freastala&iacute; thuasthrutha.
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
<!--#include virtual="include/spacer.html" -->
<!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------ga--
Content-language: it
Content-type: text/html; charset=UTF-8
Body:----------it--
<!--#set var="CONTENT_LANGUAGE" value="it"
--><!--#set var="TITLE" value="Gateway errato!"
--><!--#include virtual="include/top.html" -->
Il server proxy ha ricevuto una risposta
non valida dal server precedente.
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
<!--#include virtual="include/spacer.html" -->
<!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------it--
Content-language: ja
Content-type: text/html; charset=UTF-8
Body:----------ja--
<!--#set var="CONTENT_LANGUAGE" value="ja"
--><!--#set var="TITLE" value="Bad Gateway!"
--><!--#include virtual="include/top.html" -->
プロクシサーバは上流サーバから不正な応答を受信しました。
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
<!--#include virtual="include/spacer.html" -->
<!--#echo var="REDIRECT_ERROR_NOTES" -->
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------ja--
Content-language: ko
Content-type: text/html; charset=UTF-8
Body:----------ko--
<!--#set var="CONTENT_LANGUAGE" value="ko"
--><!--#set var="TITLE" value="잘못된 게이트웨이!"
--><!--#include virtual="include/top.html" -->
프록시 서버가 더 윗쪽의 서버로부터 잘못된 응답을 받았습니다.
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
<!--#include virtual="include/spacer.html" -->
<!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------ko--
Content-language: nl
Content-type: text/html; charset=UTF-8
Body:----------nl--
<!--#set var="CONTENT_LANGUAGE" value="nl"
--><!--#set var="TITLE" value="Verkeerde Gateway!"
--><!--#include virtual="include/top.html" -->
De proxy server heeft een ongeldig
antwoord ontvangen van een gecontacteerde server.
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
<!--#include virtual="include/spacer.html" -->
<!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------nl--
Content-language: nb
Content-type: text/html; charset=UTF-8
Body:----------nb--
<!--#set var="CONTENT_LANGUAGE" value="nb"
--><!--#set var="TITLE" value="Ugyldig Gateway!"
--><!--#include virtual="include/top.html" -->
Proxyserveren mottok et ugyldig svar fra
en oppstrøms server.
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
<!--#include virtual="include/spacer.html" -->
<!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------nb--
Content-language: pl
Content-type: text/html; charset=UTF-8
Body:----------pl--
<!--#set var="CONTENT_LANGUAGE" value="pl"
--><!--#set var="TITLE" value="Nieprawid&#322;owa brama!"
--><!--#include virtual="include/top.html" -->
Serwer otrzyma&#322; nieprawid&#322;ow&#261; odpowied&#378;
od kolejnego serwera.
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
<!--#include virtual="include/spacer.html" -->
<!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------pl--
Content-language: pt-br
Content-type: text/html; charset=UTF-8
Body:-------pt-br--
<!--#set var="CONTENT_LANGUAGE" value="pt-br"
--><!--#set var="TITLE" value="Gateway inv&aacute;lido!"
--><!--#include virtual="include/top.html" -->
O servidor proxy recebeu uma resposta
inv&aacute;lida do servidor destino.
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
<!--#include virtual="include/spacer.html" -->
<!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
-------pt-br--
Content-language: pt
Content-type: text/html; charset=ISO-8859-1
Body:----------pt--
<!--#set var="TITLE" value="Gateway inv&aacute;lida!"
--><!--#include virtual="include/top.html" -->
O servidor de <i>proxy</i> recebeu uma resposta
inválida de um outro servidor externo a ele.
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
<!--#include virtual="include/spacer.html" -->
<!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------pt--
Content-language: ro
Content-type: text/html; charset=UTF-8
Body:----------ro--
<!--#set var="CONTENT_LANGUAGE" value="ro"
--><!--#set var="TITLE" value="Gateway invalid!"
--><!--#include virtual="include/top.html" -->
Serverul proxy a primit un raspuns invalid
de la serverul precedent.
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
<!--#include virtual="include/spacer.html" -->
<!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------ro--
Content-language: sr
Content-type: text/html; charset=UTF-8
Body:----------sr--
<!--#set var="CONTENT_LANGUAGE" value="sr"
--><!--#set var="TITLE" value="Лош пролаз!"
--><!--#include virtual="include/top.html" -->
Посреднички сервер је примио неисправан
одговор од следећег сервера у низу.
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
<!--#include virtual="include/spacer.html" -->
<!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------sr--
Content-language: sv
Content-type: text/html; charset=UTF-8
Body:----------sv--
<!--#set var="CONTENT_LANGUAGE" value="sv"
--><!--#set var="TITLE" value="Felaktig Gateway!"
--><!--#include virtual="include/top.html" -->
Proxyservern mottog ett felaktigt svar fr&aring;n
en tidigare server.
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
<!--#include virtual="include/spacer.html" -->
<!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------sv--
Content-language: tr
Content-type: text/html; charset=UTF-8
Body:----------tr--
<!--#set var="CONTENT_LANGUAGE" value="tr"
--><!--#set var="TITLE" value="Hatalı Ağ Geçidi!"
--><!--#include virtual="include/top.html" -->
Vekil sunucu üstbirim sunucudan
anlamsız bir yanıt aldı.
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
<!--#include virtual="include/spacer.html" -->
<!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------tr--

View file

@ -0,0 +1,230 @@
Content-language: cs
Content-type: text/html; charset=UTF-8
Body:----------cs--
<!--#set var="CONTENT_LANGUAGE" value="cs"
--><!--#set var="TITLE" value="Chybný požadavek!"
--><!--#include virtual="include/top.html" -->
Váš prohlížeč (nebo proxy server) vyslal požadavek,
kterému tento server nerozuměl.
<!--#include virtual="include/bottom.html" -->
----------cs--
Content-language: de
Content-type: text/html; charset=UTF-8
Body:----------de--
<!--#set var="CONTENT_LANGUAGE" value="de"
--><!--#set var="TITLE" value="Fehlerhafte Anfrage!"
--><!--#include virtual="include/top.html" -->
Ihr Browser (oder Proxy) hat eine ung&uuml;ltige Anfrage
gesendet, die vom Server nicht beantwortet werden kann.
<!--#include virtual="include/bottom.html" -->
----------de--
Content-language: en
Content-type: text/html; charset=UTF-8
Body:----------en--
<!--#set var="TITLE" value="Bad request!"
--><!--#include virtual="include/top.html" -->
Your browser (or proxy) sent a request that
this server could not understand.
<!--#include virtual="include/bottom.html" -->
----------en--
Content-language: es
Content-type: text/html
Body:----------es--
<!--#set var="TITLE" value="&iexcl;Petici&oacute;n err&oacute;nea!" -->
<!--#include virtual="include/top.html" -->
Su navegador (o 'proxy') ha enviado una petici&oacute;n
que el servidor no ha podido entender.
<!--#include virtual="include/bottom.html" -->
----------es--
Content-language: fr
Content-type: text/html; charset=UTF-8
Body:----------fr--
<!--#set var="CONTENT_LANGUAGE" value="fr"
--><!--#set var="TITLE" value="Demande incorrecte!"
--><!--#include virtual="include/top.html" -->
Votre navigateur (ou votre proxy) a envoy&eacute;
une demande que ce serveur n'a pas comprise.
<!--#include virtual="include/bottom.html" -->
----------fr--
Content-language: ga
Content-type: text/html; charset=UTF-8
Body:----------ga--
<!--#set var="TITLE" value="Iarratas m&iacute;cheart!"
--><!--#include virtual="include/top.html" -->
Seol do chuid brabhs&aacute;la&iacute; (n&oacute;
seachfhreastala&iacute;) freagairt n&aacute;rbh fh&eacute;idir leis an
fhreastala&iacute; seo a thuisceant.
<!--#include virtual="include/bottom.html" -->
----------ga--
Content-language: it
Content-type: text/html; charset=UTF-8
Body:----------it--
<!--#set var="CONTENT_LANGUAGE" value="it"
--><!--#set var="TITLE" value="Richiesta incomprensibile!"
--><!--#include virtual="include/top.html" -->
Il tuo browser (o il proxy) ha inviato a
questo server una richiesta incomprensibile.
<!--#include virtual="include/bottom.html" -->
----------it--
Content-language: ja
Content-type: text/html; charset=UTF-8
Body:----------ja--
<!--#set var="CONTENT_LANGUAGE" value="ja"
--><!--#set var="TITLE" value="Bad request!"
--><!--#include virtual="include/top.html" -->
お使いのブラウザ (またはプロクシ)
が、サーバの理解できないリクエストを送信しました。
<!--#include virtual="include/bottom.html" -->
----------ja--
Content-language: ko
Content-type: text/html; charset=UTF-8
Body:----------ko--
<!--#set var="CONTENT_LANGUAGE" value="ko"
--><!--#set var="TITLE" value="잘못된 요청!"
--><!--#include virtual="include/top.html" -->
브라우저 또는 프록시가
이 서버가 처리할 수 없는 잘못된 요청을 보냈습니다.
<!--#include virtual="include/bottom.html" -->
----------ko--
Content-language: nl
Content-type: text/html; charset=UTF-8
Body:----------nl--
<!--#set var="CONTENT_LANGUAGE" value="nl"
--><!--#set var="TITLE" value="Slechte vraag!"
--><!--#include virtual="include/top.html" -->
Uw browser (of proxy) stuurde een vraag die
deze server niet kon begrijpen.
<!--#include virtual="include/bottom.html" -->
----------nl--
Content-language: nb
Content-type: text/html; charset=UTF-8
Body:----------nb--
<!--#set var="CONTENT_LANGUAGE" value="nb"
--><!--#set var="TITLE" value="Ugyldig spørring!"
--><!--#include virtual="include/top.html" -->
Din nettleser eller proxy sendte en forespørsel
som denne serveren ikke kunne forstå.
<!--#include virtual="include/bottom.html" -->
----------nb--
Content-language: pl
Content-type: text/html; charset=UTF-8
Body:----------pl--
<!--#set var="CONTENT_LANGUAGE" value="pl"
--><!--#set var="TITLE" value="Nieprawid&#322;owe &#380;&#261;danie!"
--><!--#include virtual="include/top.html" -->
Twoja przegl&#261;darka (lub serwer po&#347;rednicz&#261;cy) wys&#322;a&#322; &#380;&#261;danie,
kt&#243;rego ten serwer nie potrafi obs&#322;u&#380;y&#263;.
<!--#include virtual="include/bottom.html" -->
----------pl--
Content-language: pt-br
Content-type: text/html; charset=UTF-8
Body:-------pt-br--
<!--#set var="CONTENT_LANGUAGE" value="pt-br"
--><!--#set var="TITLE" value="Requisi&ccedil;&atilde;o Inv&aacute;lida!"
--><!--#include virtual="include/top.html" -->
Seu "browser" (ou o servidor proxy) enviou uma
requisi&ccedil;&atilde;o inv&aacute;lida ao servidor.
<!--#include virtual="include/bottom.html" -->
-------pt-br--
Content-language: pt
Content-type: text/html; charset=ISO-8859-1
Body:----------pt--
<!--#set var="TITLE" value="Pedido incorrecto!"
--><!--#include virtual="include/top.html" -->
O seu <i>browser</i> ou <i>proxy</i> enviou
um pedido que este servidor n&atilde;o compreendeu.
<!--#include virtual="include/bottom.html" -->
----------pt--
Content-language: ro
Content-type: text/html; charset=UTF-8
Body:----------ro--
<!--#set var="CONTENT_LANGUAGE" value="ro"
--><!--#set var="TITLE" value="Cerere incomprensibila!"
--><!--#include virtual="include/top.html" -->
Browserul (sau proxy-ul) dumneavoastra a trimis
serverului o cerere ce nu poate fi procesata.
<!--#include virtual="include/bottom.html" -->
----------ro--
Content-language: sr
Content-type: text/html; charset=UTF-8
Body:----------sr--
<!--#set var="CONTENT_LANGUAGE" value="sr"
--><!--#set var="TITLE" value="Лош захтев!"
--><!--#include virtual="include/top.html" -->
Ваш читач (или посреднички сервер) послао је захтев који
овај сервер није могао да разуме.
<!--#include virtual="include/bottom.html" -->
----------sr--
Content-language: sv
Content-type: text/html; charset=UTF-8
Body:----------sv--
<!--#set var="CONTENT_LANGUAGE" value="sv"
--><!--#set var="TITLE" value="Felaktig f&ouml;rfr&aring;gan!"
--><!--#include virtual="include/top.html" -->
Din webbl&auml;sare eller proxy skickade en f&ouml;rfr&aring;gan
som denna server inte kunde f&ouml;rst&aring;.
<!--#include virtual="include/bottom.html" -->
----------sv--
Content-language: tr
Content-type: text/html; charset=UTF-8
Body:----------tr--
<!--#set var="CONTENT_LANGUAGE" value="tr"
--><!--#set var="TITLE" value="Hatalı istek!"
--><!--#include virtual="include/top.html" -->
Tarayıcınız (veya vekil sunucunuz) bu sunucunun
anlayamadığı bir istekte bulundu.
<!--#include virtual="include/bottom.html" -->
----------tr--

View file

@ -0,0 +1,411 @@
Content-language: cs
Content-type: text/html; charset=UTF-8
Body:----------cs--
<!--#set var="CONTENT_LANGUAGE" value="cs"
--><!--#set var="TITLE" value="Přístup odmítnut!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->
Nemáte právo pro přístup do požadovaného adresáře. Buď neexistuje žádný
dokument s&nbsp;obsahem (tzv. index), nebo je adresář chráněn proti čtení.
<!--#else -->
Nemáte právo pro přístup k&nbsp;požadovanému objektu.
Buď je chráněn proti čtení, nebo není serverem čitelný.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------cs--
Content-language: de
Content-type: text/html; charset=UTF-8
Body:----------de--
<!--#set var="CONTENT_LANGUAGE" value="de"
--><!--#set var="TITLE" value="Zugriff verweigert!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->
Der Zugriff auf das angeforderte Verzeichnis ist nicht m&ouml;glich.
Entweder ist kein Index-Dokument vorhanden oder das Verzeichnis
ist zugriffsgesch&uuml;tzt.
<!--#else -->
Der Zugriff auf das angeforderte Objekt ist nicht m&ouml;glich.
Entweder kann es vom Server nicht gelesen werden oder es
ist zugriffsgesch&uuml;tzt.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------de--
Content-language: en
Content-type: text/html; charset=UTF-8
Body:----------en--
<!--#set var="TITLE" value="Access forbidden!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->
You don't have permission to access the requested directory.
There is either no index document or the directory is read-protected.
<!--#else -->
You don't have permission to access the requested object.
It is either read-protected or not readable by the server.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------en--
Content-language: es
Content-type: text/html
Body:----------es--
<!--#set var="TITLE" value="&iexcl;Acceso prohibido!" -->
<!--#include virtual="include/top.html" -->
<!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->
Usted no tiene permiso para acceder al directorio solicitado.
No existe un documento &iacute;ndice, o el directorio est&aacute;
protegido contra lectura.
<!--#else -->
Usted no tiene permiso para acceder al objeto solicitado.
El objeto est&aacute; protegido contra lectura o
el servidor no puede leerlo.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------es--
Content-language: fr
Content-type: text/html; charset=UTF-8
Body:----------fr--
<!--#set var="CONTENT_LANGUAGE" value="fr"
--><!--#set var="TITLE" value="Acc&egrave;s interdit!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->
Vous n'avez pas le droit d'acc&eacute;der au r&eacute;pertoire
demand&eacute;. Soit il n'y a pas de document index soit le r&eacute;pertoire
est prot&eacute;g&eacute;.
<!--#else -->
Vous n'avez pas le droit d'acc&eacute;der &agrave; l'objet
demand&eacute;. Soit celui-ci est prot&eacute;g&eacute;, soit il ne peut
&ecirc;tre lu par le serveur.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------fr--
Content-language: ga
Content-type: text/html; charset=UTF-8
Body:----------ga--
<!--#set var="TITLE" value="Rochtain neamh-cheadaithe!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->
N&iacute;l cead agat rochtain a dh&eacute;anamh ar an comhadlann faoi
iarratais. Is f&eacute;idir nach bhfuil aon doicim&eacute;ad
inn&eacute;acs, n&oacute; go bhfuil cosaint ar l&eacute;mh an comhadlann.
<!--#else -->
N&iacute;l cead agat rochtain a dh&eacute;anamh ar an aidhm faoi iarratais.
Is f&eacute;idir go bhfuil cosaint ar l&eacute; air, n&oacute; go bhfuil
s&eacute; dol&eacute;ite don freastala&iacute;.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------ga--
Content-language: it
Content-type: text/html; charset=UTF-8
Body:----------it--
<!--#set var="CONTENT_LANGUAGE" value="it"
--><!--#set var="TITLE" value="Accesso negato!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->
Non disponi dei permessi necessari per accedere alla
directory richiesta oppure non esiste il documento indice.
<!--#else -->
Non disponi dei permessi necessari per accedere all'oggetto
richiesto, oppure l'oggetto non pu&ograve; essere letto dal server.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------it--
Content-language: ja
Content-type: text/html; charset=UTF-8
Body:----------ja--
<!--#set var="CONTENT_LANGUAGE" value="ja"
--><!--#set var="TITLE" value="Access forbidden!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->
要求されたディレクトリへのアクセス権限がありません。
インデックスドキュメントが存在しないか、
ディレクトリの読み込みが許可されていません。
<!--#else -->
要求されたオブジェクトへのアクセス権がありません。
読み込みが許可されていないか、
サーバが読み込みに失敗したかでしょう。
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------ja--
Content-language: ko
Content-type: text/html; charset=UTF-8
Body:----------ko--
<!--#set var="CONTENT_LANGUAGE" value="ko"
--><!--#set var="TITLE" value="접근이 거부됨!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->
요청한 디렉토리에 접근할 수 있는 권한이 없습니다.
디렉토리에 첫 페이지가 없거나 아니면 읽기 보호가 되어 있습니다.
<!--#else -->
요청한 객체에 접근할 수 있는 권한이 없습니다.
읽기 보호가 되어 있거나 웹서버가 읽을 수 없도록 되어 있습니다.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------ko--
Content-language: nl
Content-type: text/html; charset=UTF-8
Body:----------nl--
<!--#set var="CONTENT_LANGUAGE" value="nl"
--><!--#set var="TITLE" value="Toegang verboden!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->
U hebt niet de toestemming om toegang te krijgen tot de gevraagde map.
Er is of wel geen index document of de map is beveiligd tegen lezen.
<!--#else -->
U hebt niet de toestemming om toegang te krijgen tot de gevraagde map.
Die is ofwel beveiligd tegen lezen of onleesbaar door de server.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------nl--
Content-language: nb
Content-type: text/html; charset=UTF-8
Body:----------nb--
<!--#set var="CONTENT_LANGUAGE" value="nb"
--><!--#set var="TITLE" value="Adgang forbudt!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->
Du har ikke tilstrekkelige rettigheter for å få tilgang til den
ønskede katalogen. Det eksisterer ikke et indeksdokument, eller
katalogen er lesebeskyttet.
<!--#else -->
Du har ikke tilstrekkelige rettigheter for å få adgang til det
ønskede dokumentet. Objektet er lesebeskyttet, eller ikke lesbart
for serveren.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------nb--
Content-language: pl
Content-type: text/html; charset=UTF-8
Body:----------pl--
<!--#set var="CONTENT_LANGUAGE" value="pl"
--><!--#set var="TITLE" value="Zabroniony dost&#281;p!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->
Nie masz prawa dost&#281;pu do &#380;&#261;danego katalogu. W katalogu nie
ma indeksu lub katalog jest zabezpieczony przed odczytem.
<!--#else -->
Nie masz dost&#281;pu do &#380;&#261;danego obiektu. Jest on zabezpieczony
przed odczytem lub nie mo&#380;e by&#263; odczytany przez serwer.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------pl--
Content-language: pt-br
Content-type: text/html; charset=UTF-8
Body:-------pt-br--
<!--#set var="CONTENT_LANGUAGE" value="pt-br"
--><!--#set var="TITLE" value="Acesso Proibido!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->
Voc&ecirc; n&atilde;o tem permiss&atilde;o para acessar o
diret&oacute;rio requisitado.
Pode n&atilde;o existir o arquivo de &iacute;ndice ou
o diret&oacute;rio pode estar protegido contra leitura.
<!--#else -->
Voc&ecirc; n&atilde;o tem permiss&atilde;o para acessar o
objeto requisitado. Ele pode estar protegido contra leitura ou
n&atilde;o ser leg&iacute;vel pelo servidor.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
-------pt-br--
Content-language: pt
Content-type: text/html; charset=ISO-8859-1
Body:----------pt--
<!--#set var="TITLE" value="Acesso proibido!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->
N&atilde;o tem permiss&atilde;o para aceder ao direct&oacute;rio
que deseja. Ou n&atilde;o existe o documento de &iacute;ndice
ou o direct&oacute;rio est&aacute; protegido contra leitura.
<!--#else -->
N&atilde;o tem permiss&atilde;o para aceder ao objecto
que deseja. Este est&aacute; protegido contra leitura ou
o servidor n&atilde;o o consegue ler.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------pt--
Content-language: ro
Content-type: text/html; charset=UTF-8
Body:----------ro--
<!--#set var="CONTENT_LANGUAGE" value="ro"
--><!--#set var="TITLE" value="Accesul interzis!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->
Nu aveti permisiunea sa accesati directorul cerut.
Nu este nici un document index sau directorul este protejat la citire.
<!--#else -->
Nu aveti permisiunea sa accesati obiectul cerut.
Este protejat la citire sau nu poate fi citit de server.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------ro--
Content-language: sr
Content-type: text/html; charset=UTF-8
Body:----------sr--
<!--#set var="CONTENT_LANGUAGE" value="sr"
--><!--#set var="TITLE" value="Забрањен приступ!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->
Немате дозволу да приступите захтеваном директоријуму.
Могуће је да нема индексног документа, или да је директоријум заштићен од читања.
<!--#else -->
Немате дозволу да приступите захтеваном објекту.
Могуће је да је заштићен од читања, или да га сервер не може прочитати.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------sr--
Content-language: sv
Content-type: text/html; charset=UTF-8
Body:----------sv--
<!--#set var="CONTENT_LANGUAGE" value="sv"
--><!--#set var="TITLE" value="&Aring;tkomst f&ouml;rbjuden!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->
Du har inte tillr&auml;ckliga r&auml;ttigheter f&ouml;r att f&aring;
tillg&aring;ng till den &ouml;nskade katalogen. Det existerar inget
indexdokument eller s&aring; &auml;r katalogen l&auml;sskyddad.
<!--#else -->
Du har inte tillr&auml;ckliga r&auml;ttigheter f&ouml;r att f&aring;
tillg&aring;ng till det &ouml;nskade objektet. Objektet &auml;r
l&auml;sskyddat eller inte l&auml;sbart f&ouml;r servern.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------sv--
Content-language: tr
Content-type: text/html; charset=UTF-8
Body:----------tr--
<!--#set var="CONTENT_LANGUAGE" value="tr"
--><!--#set var="TITLE" value="Erişim engellendi!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="v('REDIRECT_URL') =~ m:/$:" -->
Talep ettiğiniz dizine erişim izniniz yok.
Ya dizin içerik dosyası yok, ya da dizin okumaya karşı korumalı.
<!--#else -->
Talep ettiğiniz dizine erişim izniniz yok.
Dizin, ya okumaya karşı korumalı
ya da sunucu tarafından okunamıyor.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------tr--

View file

@ -0,0 +1,466 @@
Content-language: cs
Content-type: text/html; charset=UTF-8
Body:----------cs--
<!--#set var="CONTENT_LANGUAGE" value="cs"
--><!--#set var="TITLE" value="Zdroj již není dále dostupný!"
--><!--#include virtual="include/top.html" -->
Požadované URL již není na tomto serveru k dispozici, ani není k dispozici
žádná adresa k přesměrování.
<!--#if expr="-n v('HTTP_REFERER')" -->
Informujte, prosím, autora
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">odkazující
stránky</a>, že odkaz je zastaralý.
<!--#else -->
Pokud jste následovali odkaz z&nbsp;cizí stránky, kontaktujte, prosím,
jejího autora.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------cs--
Content-language: de
Content-type: text/html; charset=UTF-8
Body:----------de--
<!--#set var="CONTENT_LANGUAGE" value="de"
--><!--#set var="TITLE" value="Objekt nicht mehr verf&uuml;gbar!"
--><!--#include virtual="include/top.html" -->
Der angeforderte URL existiert auf dem Server nicht mehr
und wurde dauerhaft entfernt.
Eine Weiterleitungsadresse ist nicht verf&uuml;gbar.
<!--#if expr="-n v('HTTP_REFERER')" -->
Bitte informieren Sie den Autor der
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">verweisenden
Seite</a>, dass der Link nicht mehr aktuell ist.
<!--#else -->
Falls Sie einem Link von einer anderen Seite gefolgt sind,
informieren Sie bitte den Autor dieser Seite hier&uuml;ber.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------de--
Content-language: en
Content-type: text/html; charset=UTF-8
Body:----------en--
<!--#set var="TITLE" value="Resource is no longer available!"
--><!--#include virtual="include/top.html" -->
The requested URL is no longer available on this server and there is no
forwarding address.
<!--#if expr="-n v('HTTP_REFERER')" -->
Please inform the author of the
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">referring
page</a> that the link is outdated.
<!--#else -->
If you followed a link from a foreign page, please contact the
author of this page.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------en--
Content-language: es
Content-type: text/html
Body:----------es--
<!--#set var="TITLE" value="&iexcl;El recurso ya no est&aacute; disponible!" -->
<!--#include virtual="include/top.html" -->
La URL solicitada ya no est&aacute; disponible en este servidor y
no existe una direcci&oacute;n a la cual remitirle.
<!--#if expr="-n v('HTTP_REFERER')" -->
Por favor, comunique al autor de la
<a href="<!--#echo encoding="url" var="HTTP_REFERER"-->">p&aacute;gina
que le ha remitido</a> que la URL est&aacute; obsoleta.
<!--#else -->
Si usted ha seguido un enlace de una p&aacute;gina externa,
por favor contacte con el autor de esa p&aacute;gina.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------es--
Content-language: fr
Content-type: text/html; charset=UTF-8
Body:----------fr--
<!--#set var="CONTENT_LANGUAGE" value="fr"
--><!--#set var="TITLE" value="Cette ressource n'existe plus!"
--><!--#include virtual="include/top.html" -->
L'URL demand&eacute;e n'est plus accessible sur ce serveur et il
n'y a pas d'adresse de redirection.
<!--#if expr="-n v('HTTP_REFERER')" -->
Nous vous prions d'informer l'auteur de
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">la
page en question</a> que la r&eacute;f&eacute;rence n'est plus valable.
<!--#else -->
Si vous avez suivi une r&eacute;f&eacute;rence issue d'une page autre,
veuillez contacter l'auteur de cette page.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------fr--
Content-language: ga
Content-type: text/html; charset=UTF-8
Body:----------ga--
<!--#set var="TITLE" value="Acmhainn imithe!"
--><!--#include virtual="include/top.html" -->
N&iacute;l an URL iarraithe ar f&aacute;il ar an fhreastala&iacute; seo
a thuilleadh, agus n&iacute;l aon seoladh nua ann d&oacute;.
<!--#if expr="-n v('HTTP_REFERER')" -->
Cur in &uacute;il do &uacute;adar an
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">leathanach
thagarthach</a> go bhfuil an nasc as-d&aacute;ta, le do thoil.
<!--#else -->
M&aacute; leanf&aacute; nasc &oacute; leathanach iasachta, t&eacute;igh i
dteaghmh&aacute;il le &uacute;adar an leathanach sin, le do thoil.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------ga--
Content-language: it
Content-type: text/html; charset=UTF-8
Body:----------it--
<!--#set var="CONTENT_LANGUAGE" value="it"
--><!--#set var="TITLE" value="La risorsa non &egrave; pi&ugrave; disponibile!"
--><!--#include virtual="include/top.html" -->
L'URL richiesto non &egrave; pi&ugrave; disponibile su questo server
e non esistono indirizzi verso i quali sia possibile inoltrare
la richiesta.
<!--#if expr="-n v('HTTP_REFERER')" -->
Per favore, informa l'autore della
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">pagina
di provenienza</a> che il link non &egrave; pi&ugrave; valido.
<!--#else -->
Se sei arrivato da una pagina esterna, informa l'autore della
pagina di provenienza che il link non &egrave; pi&ugrave; valido.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------it--
Content-language: ja
Content-type: text/html; charset=UTF-8
Body:----------ja--
<!--#set var="CONTENT_LANGUAGE" value="ja"
--><!--#set var="TITLE" value="Resource is no longer available!"
--><!--#include virtual="include/top.html" -->
要求された URL は既に本サーバでは利用できませんし、
移動先もわかりません。
<!--#if expr="-n v('HTTP_REFERER')" -->
<a href="<!--#echo encoding="url" var="HTTP_REFERER"-->"
>参照元ページ</a>の著者に、
リンクが古くなっていることをご連絡ください。
<!--#else -->
他のページからのリンクを辿ってきた場合は、
そのページの著者にご連絡ください。
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------ja--
Content-language: ko
Content-type: text/html; charset=UTF-8
Body:----------ko--
<!--#set var="CONTENT_LANGUAGE" value="ko"
--><!--#set var="TITLE" value="객체가 없어졌음!"
--><!--#include virtual="include/top.html" -->
요청한 URL은 더 이상 이 서버에 남아있지 않으며,
그 객체가 옮겨진 다른 URL 역시 남아있지 않습니다.
<!--#if expr="-n v('HTTP_REFERER')" -->
<a href="<!--#echo encoding="url" var="HTTP_REFERER"-->">이전
페이지</a>의 만든이에게 주소가 잘못되었다고 알려주시기 바랍니다.
<!--#else -->
다른 페이지의 링크를 따라오셨다면, 그 페이지의 만든이에게 연락을 하시기
바랍니다.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------ko--
Content-language: nl
Content-type: text/html; charset=UTF-8
Body:----------nl--
<!--#set var="CONTENT_LANGUAGE" value="nl"
--><!--#set var="TITLE" value="Dit object is niet langer beschikbaar!"
--><!--#include virtual="include/top.html" -->
De gevraagde URL is niet langer beschikbaar op deze server en er is geen
doorverwijsadres.
<!--#if expr="-n v('HTTP_REFERER')" -->
Gelieve aan de auteur van
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">deze pagina</a>
te melden dat deze link niet langer actueel is.
<!--#else -->
Indien u deze link hebt gekregen van een andere pagina, gelieve
de auteur van deze pagina te contacteren.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------nl--
Content-language: nb
Content-type: text/html; charset=UTF-8
Body:----------nb--
<!--#set var="CONTENT_LANGUAGE" value="nb"
--><!--#set var="TITLE" value="Ressursen er ikke lenger tilgjengelig!"
--><!--#include virtual="include/top.html" -->
Den ønskede adressen er ikke lenger tilgjengelig hos denne
serveren og det finnes ingen adresse for videresending.
<!--#if expr="-n v('HTTP_REFERER')" -->
Venligst informer forfatteren bak
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">den
aktuelle siden</a> om at lenken er utdatert.
<!--#else -->
Om du fulgte en lenke fra en ekstern side, venligst kontakt
forfatteren bak den siden.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------nb--
Content-language: pl
Content-type: text/html; charset=UTF-8
Body:----------pl--
<!--#set var="CONTENT_LANGUAGE" value="pl"
--><!--#set var="TITLE" value="Zas&#243;b usuni&#281;ty!"
--><!--#include virtual="include/top.html" -->
Poszukiwany zas&#243;b nie jest ju&#380; dost&#281;pny na tym serwerze i nie
podano nowego adresu zasobu.
<!--#if expr="-n v('HTTP_REFERER')" -->
Prosimy poinformowa&#263; autora
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">referuj&#261;cej
strony</a> o nieaktualnym linku.
<!--#else -->
Je&#347;li pod&#261;&#380;y&#322;e&#347; za linkiem z innej strony, skontaktuj si&#281; z jej
autorem.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------pl--
Content-language: pt-br
Content-type: text/html; charset=UTF-8
Body:-------pt-br--
<!--#set var="CONTENT_LANGUAGE" value="pt-br"
--><!--#set var="TITLE" value="Recurso n&atilde;o dispon&iacute;vel!"
--><!--#include virtual="include/top.html" -->
A URL solicitada n&atilde;o est&aacute; dispon&iacute;vel neste servidor
e n&atilde;o existe um endere&ccedil;o alternativo.
<!--#if expr="-n v('HTTP_REFERER')" -->
Por favor informe o autor da
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">p&aacute;gina
referida</a> que a URL est&aacute; desatualizada.
<!--#else -->
Se voc&ecirc; seguiu um "link" de uma p&aacute;gina externa, por favor
entre em contato com o autor desta p&aacute;gina e o informe sobre a
mudan&ccedil;a do "link".
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
-------pt-br--
Content-language: pt
Content-type: text/html; charset=ISO-8859-1
Body:----------pt--
<!--#set var="TITLE" value="Recurso n&atilde;o dispon&iacute;vel!"
--><!--#include virtual="include/top.html" -->
O URL desejado j&aacute; n&atilde;o est&aacute; dispon&iacute;vel
neste servidor e n&atilde;o existe endere&ccedil;o alternativo.
<!--#if expr="-n v('HTTP_REFERER')" -->
Por favor informe o autor da
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">p&aacute;gina
origin&aacute;ria</a> que a hiperliga&ccedil;&atilde;o est&aacute;
desactualizada.
<!--#else -->
Se chegou aqui a partir de uma hiperliga&ccedil;&atilde;o externa,
por favor contacte o autor dessa p&aacute;gina.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------pt--
Content-language: ro
Content-type: text/html; charset=UTF-8
Body:----------ro--
<!--#set var="CONTENT_LANGUAGE" value="ro"
--><!--#set var="TITLE" value="Resursa nu mai este disponibila!"
--><!--#include virtual="include/top.html" -->
URL-ul cerut nu mai este disponibil pe acest server si nu
exista o adresa de inaintare.
<!--#if expr="-n v('HTTP_REFERER')" -->
Va rugam informati autorul
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">paginii
referite</a> ca link-ul nu mai este de actualitate.
<!--#else -->
Va rugam contactati autorul acestei pagini daca ati urmat
un link dintr-o pagina externa.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------ro--
Content-language: sr
Content-type: text/html; charset=UTF-8
Body:----------sr--
<!--#set var="CONTENT_LANGUAGE" value="sr"
--><!--#set var="TITLE" value="Ресурс није више доступан!"
--><!--#include virtual="include/top.html" -->
Захтевани УРЛ није више доступан на овом серверу и нема
адресе на коју бисте могли бити прослеђени.
<!--#if expr="-n v('HTTP_REFERER')" -->
Молимо обавестите аутора
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">исходишне
странице</a> да је веза застарела.
<!--#else -->
Ако сте пратили везу са спољне странице, молимо обавестите
аутора те странице.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------sr--
Content-language: sv
Content-type: text/html; charset=UTF-8
Body:----------sv--
<!--#set var="CONTENT_LANGUAGE" value="sv"
--><!--#set var="TITLE" value="Resursen inte l&auml;ngre tillg&auml;nglig!"
--><!--#include virtual="include/top.html" -->
Den &ouml;nskade adressen &auml;r inte l&auml;ngre tillg&auml;nglig hos
denna server och det finns inte n&aring;gon adress f&ouml;r vidarebefodran.
<!--#if expr="-n v('HTTP_REFERER')" -->
V&auml;nligen informera f&ouml;rfattaren bakom
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">den aktuella
sidan</a> att l&auml;nken &auml;r inaktuell.
<!--#else -->
Om du f&ouml;ljde en l&auml;nk fr&aring;n en extern sida, v&auml;nligen
kontakta f&ouml;rfattaren av den sidan.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------sv--
Content-language: tr
Content-type: text/html; charset=UTF-8
Body:----------tr--
<!--#set var="CONTENT_LANGUAGE" value="tr"
--><!--#set var="TITLE" value="Özkaynak artık mevcut değil!"
--><!--#include virtual="include/top.html" -->
Talep ettiğiniz URL artık kullanılabilir değil
ve herhangi bir yönlendirme de mevcut değil.
<!--#if expr="-n v('HTTP_REFERER')" -->
Lütfen
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">istenen sayfanın</a>
yazarına, bu bağlantının güncel olmadığını bildirin.
<!--#else -->
Başka bir sunucudaki bir bağlantıyı izleyerek buraya geldiyseniz,
lütfen sözkonusu sayfanın yazarına bağlantının güncel olmadığını bildirin.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------tr--

View file

@ -0,0 +1,499 @@
Content-language: cs
Content-type: text/html; charset=UTF-8
Body:----------cs--
<!--#set var="CONTENT_LANGUAGE" value="cs"
--><!--#set var="TITLE" value="Chyba serveru!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
Nastala vnitřní chyba a server nebyl schopen
dokončit Váš požadavek.
<!--#include virtual="include/spacer.html" -->
Chybová zpráva
<br /><!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#else -->
Nastala vnitřní chyba a server nebyl schopen
dokončit Váš požadavek. Buď je server
přetížen, nebo došlo k&nbsp;chybě v&nbsp;CGI skriptu.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------cs--
Content-language: de
Content-type: text/html; charset=UTF-8
Body:----------de--
<!--#set var="CONTENT_LANGUAGE" value="de"
--><!--#set var="TITLE" value="Serverfehler!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
Die Anfrage kann nicht beantwortet werden, da im Server
ein interner Fehler aufgetreten ist.
<!--#include virtual="include/spacer.html" -->
Fehlermeldung:
<br /><!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#else -->
Die Anfrage kann nicht beantwortet werden, da im Server
ein interner Fehler aufgetreten ist.
Der Server ist entweder &uuml;berlastet oder ein Fehler in
einem CGI-Skript ist aufgetreten.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------de--
Content-language: en
Content-type: text/html; charset=UTF-8
Body:----------en--
<!--#set var="TITLE" value="Server error!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
The server encountered an internal error and was
unable to complete your request.
<!--#include virtual="include/spacer.html" -->
Error message:
<br /><!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#else -->
The server encountered an internal error and was
unable to complete your request. Either the server is
overloaded or there was an error in a CGI script.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------en--
Content-language: es
Content-type: text/html
Body:----------es--
<!--#set var="TITLE" value="&iexcl;Error del servidor!" -->
<!--#include virtual="include/top.html" -->
Se ha producido un error interno en el servidor y no
se ha podido completar su solicitud.
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
<!--#include virtual="include/spacer.html" -->
Mensaje de error:<br />
<!--#echo var="REDIRECT_ERROR_NOTES" -->
<!--#else -->
Se ha producido un error interno en el servidor y no se
ha podido completar su solicitud. O el servidor est&aacute;
sobrecargado o ha habido un fallo en la ejecuci&oacute;n de
un programa CGI.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------es--
Content-language: fr
Content-type: text/html; charset=UTF-8
Body:----------fr--
<!--#set var="CONTENT_LANGUAGE" value="fr"
--><!--#set var="TITLE" value="Erreur du serveur!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
Le serveur a &eacute;t&eacute; victime d'une erreur interne et n'a pas
&eacute;t&eacute; capable de faire aboutir votre requ&ecirc;te.
<!--#include virtual="include/spacer.html" -->
Message d'erreur:
<br /><!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#else -->
Le serveur a &eacute;t&eacute; victime d'une erreur interne et n'a pas
&eacute;t&eacute; capable de faire aboutir votre requ&ecirc;te.
Soit le server est surcharg&eacute; soit il s'agit d'une erreur dans
le script CGI.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------fr--
Content-language: ga
Content-type: text/html; charset=UTF-8
Body:----------ga--
<!--#set var="TITLE" value="Earr&aacute;id fhreastala&iacute;!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
Thit an freastala&iacute; ar earr&aacute;id inmhe&aacute;nach
agus theip air do chuid iarratais a comhl&iacute;onadh.
<!--#include virtual="include/spacer.html" -->
Teachtaireacht earr&aacute;ide:
<br /><!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#else -->
Thit an freastala&iacute; ar earr&aacute;id inmhe&aacute;nach
agus theip air do chuid iarratais a comhl&iacute;onadh.
Is f&eacute;idir go bhfuil an freastala&iacute;
r&oacute;l&oacute;aidithe, n&oacute; go raibh earr&aacute;id
i script CGI &eacute;igin.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------ga--
Content-language: it
Content-type: text/html; charset=UTF-8
Body:----------it--
<!--#set var="CONTENT_LANGUAGE" value="it"
--><!--#set var="TITLE" value="Errore del server!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
Il server ha generato un errore interno e non &egrave;
in grado di soddisfare la richiesta.
<!--#include virtual="include/spacer.html" -->
Messaggio di errore:
<br /><!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#else -->
Il server ha generato un errore interno e non &egrave;
in grado di soddisfare la richiesta. Il server potrebbe
essere sovraccarico oppure si &egrave; verificato un
errore in uno script CGI.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------it--
Content-language: ja
Content-type: text/html; charset=UTF-8
Body:----------ja--
<!--#set var="CONTENT_LANGUAGE" value="ja"
--><!--#set var="TITLE" value="Server error!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
サーバ内部で障害が発生し、
リクエストに応えることができませんでした。
<!--#include virtual="include/spacer.html" -->
Error message:
<br /><!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#else -->
サーバ内部で障害が発生し、
リクエストに応えることができませんでした。
サーバが過負荷であるか、
CGI スクリプトにエラーがあります。
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------ja--
Content-language: ko
Content-type: text/html; charset=UTF-8
Body:----------ko--
<!--#set var="CONTENT_LANGUAGE" value="ko"
--><!--#set var="TITLE" value="서버 오류!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
서버에 내부 오류가 발생하여 요청을 끝까지 처리하지 못했습니다.
<!--#include virtual="include/spacer.html" -->
오류 내용:
<br /><!--#echo var="REDIRECT_ERROR_NOTES" -->
<!--#else -->
서버에 내부 오류가 생겨 요청을 끝까지 처리하지 못했습니다.
서버에 과부하가 걸렸거나 아니면 CGI 프로그램에 오류가 있었습니다.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------ko--
Content-language: nl
Content-type: text/html; charset=UTF-8
Body:----------nl--
<!--#set var="CONTENT_LANGUAGE" value="nl"
--><!--#set var="TITLE" value="Server fout!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
<!--#include virtual="include/spacer.html" -->
Foutbericht:
<br /><!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#else -->
De server kreeg een interne fout en kon
uw vraag niet beantwoorden. De server is overbelast
of er was een fout in een CGI script.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------nl--
Content-language: nb
Content-type: text/html; charset=UTF-8
Body:----------nb--
<!--#set var="CONTENT_LANGUAGE" value="nb"
--><!--#set var="TITLE" value="Serverfeil!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
Det inntraff en intern feil hos serveren, og det var ikke mulig å
gjennomføre din forespørsel.
<!--#include virtual="include/spacer.html" -->
Feilmelding:
<br /><!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#else -->
Det inntraff en intern feil hos serveren, og det var ikke mulig å
gjennomføre din forespørsel. Serveren er enten overbelastet, eller
CGI-skriptet inneholder feil.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------nb--
Content-language: pl
Content-type: text/html; charset=UTF-8
Body:----------pl--
<!--#set var="CONTENT_LANGUAGE" value="pl"
--><!--#set var="TITLE" value="B&#322;&#261;d serwera!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
Serwer napotka&#322; b&#322;&#261;d wewn&#281;trzny i nie jest w stanie
zrealizowa&#263; twojego &#380;&#261;dania.
<!--#include virtual="include/spacer.html" -->
Informacja o b&#322;&#281;dzie:
<br /><!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#else -->
Serwer napotka&#322; b&#322;&#261;d wewn&#281;trzny i nie jest w stanie
zrealizowa&#263; twojego &#380;&#261;dania. Serwer jest przeci&#261;&#380;ony lub
napotka&#322; na b&#322;&#261;d w skrypcie CGI.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------pl--
Content-language: pt-br
Content-type: text/html; charset=UTF-8
Body:-------pt-br--
<!--#set var="CONTENT_LANGUAGE" value="pt-br"
--><!--#set var="TITLE" value="Erro interno do Servidor!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
O servidor encontrou um erro interno e n&atilde;o pode
completar sua requisi&ccedil;&atilde;o.
<!--#include virtual="include/spacer.html" -->
Mensagem de Erro:
<br /><!--#echo var="REDIRECT_ERROR_NOTES" -->
<!--#else -->
O servidor encontrou um erro interno e n&atilde;o
foi poss&iacute;vel completar sua requisi&ccedil;&atilde;o.
O servidor est&aacute; sobrecarregado ou existe um
erro em um script CGI.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
-------pt-br--
Content-language: pt
Content-type: text/html; charset=ISO-8859-1
Body:----------pt--
<!--#set var="TITLE" value="Erro interno do servidor!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
O servidor encontrou um erro interno e n&atilde;o pode completar
o seu pedido.
<!--#include virtual="include/spacer.html" -->
Mensagem de erro:
<br /><!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#else -->
O servidor encontrou um erro interno e n&atilde;o pode completar
o seu pedido. Ou o servidor est&aacute; sobrecarregado, ou ocorreu
um erro num <i>script</i> CGI.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------pt--
Content-language: ro
Content-type: text/html; charset=UTF-8
Body:----------ro--
<!--#set var="CONTENT_LANGUAGE" value="ro"
--><!--#set var="TITLE" value="Eroare server!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
Serverul a intalnit o eroare interna si nu a
putut rezolva cererea dumneavoastra.
<!--#include virtual="include/spacer.html" -->
Mesajul de eroare :
<br /><!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#else -->
Serverul a intalnit o eroare interna si nu a
putut rezolva cererea dumneavoastra. Serverul este
supraincarcat sau a fost o eroare intr-un script CGI.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------ro--
Content-language: sr
Content-type: text/html; charset=UTF-8
Body:----------sr--
<!--#set var="CONTENT_LANGUAGE" value="sr"
--><!--#set var="TITLE" value="Грешка сервера!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
Сервер је имао унутрашњу грешку и није био
у могућности да испуни ваш захтев.
<!--#include virtual="include/spacer.html" -->
Порука о грешци:
<br /><!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#else -->
Сервер је имао унутрашњу грешку и није био
у могућности да испуни ваш захтев. Могуће је да је сервер
преоптерећен, или да се десила грешка у CGI скрипти.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------sr--
Content-language: sv
Content-type: text/html; charset=UTF-8
Body:----------sv--
<!--#set var="CONTENT_LANGUAGE" value="sv"
--><!--#set var="TITLE" value="Serverfel!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
Servern r&aring;kade ut f&ouml;r ett internt fel och det var inte m&ouml;jligt
att slutf&ouml;ra din beg&auml;ran.
<!--#include virtual="include/spacer.html" -->
Felmeddelande:
<br /><!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#else -->
Servern r&aring;kade ut f&ouml;r ett internt fel och det var inte m&ouml;jligt
att slutf&ouml;ra din beg&auml;ran. Servern &auml;r antingen &ouml;verbelastad
eller s&aring; inneh&aring;ller CGI-skriptet fel.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------sv--
Content-language: tr
Content-type: text/html; charset=UTF-8
Body:----------tr--
<!--#set var="CONTENT_LANGUAGE" value="tr"
--><!--#set var="TITLE" value="Sunucu hatası!"
--><!--#include virtual="include/top.html" -->
<!--#if expr="-n v('REDIRECT_ERROR_NOTES')" -->
Sunucuda içsel bir hata oluştuğundan sunucu isteğinizi yerine getiremiyor.
<!--#include virtual="include/spacer.html" -->
Hata iletisi:
<br /><!--#echo encoding="none" var="REDIRECT_ERROR_NOTES" -->
<!--#else -->
Sunucuda içsel bir hata oluştuğundan sunucu isteğinizi yerine getiremiyor.
Ya sunucu aşırı yüklü ya da CGI betiğinde bir hata oluştu.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------tr--

View file

@ -0,0 +1,241 @@
Content-language: cs
Content-type: text/html; charset=UTF-8
Body:----------cs--
<!--#set var="CONTENT_LANGUAGE" value="cs"
--><!--#set var="TITLE" value="Chybná hlavička Content-Length!"
--><!--#include virtual="include/top.html" -->
Požadavek metodou <!--#echo var="REDIRECT_REQUEST_METHOD" -->
vyžaduje korektní hlavičku <code>Content-Length</code>.
<!--#include virtual="include/bottom.html" -->
----------cs--
Content-language: de
Content-type: text/html; charset=UTF-8
Body:----------de--
<!--#set var="CONTENT_LANGUAGE" value="de"
--><!--#set var="TITLE" value="Content-Length-Angabe fehlerhaft!"
--><!--#include virtual="include/top.html" -->
Die Anfrage kann nicht beantwortet werden.
Bei Verwendung der <!--#echo var="REDIRECT_REQUEST_METHOD" -->-Methode
mu&szlig; ein korrekter <code>Content-Length</code>-Header
angegeben werden.
<!--#include virtual="include/bottom.html" -->
----------de--
Content-language: en
Content-type: text/html; charset=UTF-8
Body:----------en--
<!--#set var="TITLE" value="Bad Content-Length!"
--><!--#include virtual="include/top.html" -->
A request with the <!--#echo var="REDIRECT_REQUEST_METHOD" -->
method requires a valid <code>Content-Length</code> header.
<!--#include virtual="include/bottom.html" -->
----------en--
Content-language: es
Content-type: text/html
Body:----------es--
<!--#set var="TITLE" value="&iexcl;Error en la longitud del contenido!" -->
<!--#include virtual="include/top.html" -->
Una petici&oacute;n con el m&eacute;todo <!--#echo
var="REDIRECT_REQUEST_METHOD" --> requiere que el encabezado
<code>Content-Length</code> sea v&aacute;lido.
<!--#include virtual="include/bottom.html" -->
----------es--
Content-language: fr
Content-type: text/html; charset=UTF-8
Body:----------fr--
<!--#set var="CONTENT_LANGUAGE" value="fr"
--><!--#set var="TITLE" value="Longueur du contenu ill&eacute;gal!"
--><!--#include virtual="include/top.html" -->
Une requ&ecirc;te utilisant la m&eacute;thode <!--#echo
var="REDIRECT_REQUEST_METHOD" --> n&eacute;cessite un en-t&ecirc;te
<code>Content-Length</code> (indiquant la longueur) valable.
<!--#include virtual="include/bottom.html" -->
----------fr--
Content-language: ga
Content-type: text/html; charset=UTF-8
Body:----------ga--
<!--#set var="TITLE" value="Content-Length m&iacute;cheart!"
--><!--#include virtual="include/top.html" -->
Is g&aacute; go mbh&eacute;adh ceannt&aacute;isc
<code>Content-Length</code>
bhail&iacute; do iarratais faoin modh
<!--#echo var="REDIRECT_REQUEST_METHOD" -->.
<!--#include virtual="include/bottom.html" -->
----------ga--
Content-language: it
Content-type: text/html; charset=UTF-8
Body:----------it--
<!--#set var="CONTENT_LANGUAGE" value="it"
--><!--#set var="TITLE" value="Campo Content-Length non valido!"
--><!--#include virtual="include/top.html" -->
Una richiesta con il metodo
<!--#echo var="REDIRECT_REQUEST_METHOD" -->
richiede che venga specificato un header <code>Content-Length</code>
valido.
<!--#include virtual="include/bottom.html" -->
----------it--
Content-language: ja
Content-type: text/html; charset=UTF-8
Body:----------ja--
<!--#set var="CONTENT_LANGUAGE" value="ja"
--><!--#set var="TITLE" value="Bad Content-Length!"
--><!--#include virtual="include/top.html" -->
<!--#echo var="REDIRECT_REQUEST_METHOD"-->
メソッドのリクエストでは、
正しい <code>Content-Length</code> ヘッダが必要になります。
<!--#include virtual="include/bottom.html" -->
----------ja--
Content-language: ko
Content-type: text/html; charset=UTF-8
Body:----------ko--
<!--#set var="CONTENT_LANGUAGE" value="ko"
--><!--#set var="TITLE" value="잘못된 Content-Length!"
--><!--#include virtual="include/top.html" -->
<!--#echo encoding="none" var="REDIRECT_REQUEST_METHOD"--> 방식을 쓰는
요청은 올바른 <code>Content-Length</code> 헤더도 함께 보내야만 합니다.
<!--#include virtual="include/bottom.html" -->
----------ko--
Content-language: nl
Content-type: text/html; charset=UTF-8
Body:----------nl--
<!--#set var="CONTENT_LANGUAGE" value="nl"
--><!--#set var="TITLE" value="Ongeldige lengte inhoud!"
--><!--#include virtual="include/top.html" -->
Een vraag met het <!--#echo var="REDIRECT_REQUEST_METHOD" -->
type methode heeft een correcte <code>Content-Length</code> lijn nodig.
<!--#include virtual="include/bottom.html" -->
----------nl--
Content-language: nb
Content-type: text/html; charset=UTF-8
Body:----------nb--
<!--#set var="CONTENT_LANGUAGE" value="nb"
--><!--#set var="TITLE" value="Feil Content-Length!"
--><!--#include virtual="include/top.html" -->
En forespørsel med <!--#echo var="REDIRECT_REQUEST_METHOD" -->
metoden krever en korrekt <code>Content-Length</code> header.
<!--#include virtual="include/bottom.html" -->
----------nb--
Content-language: pl
Content-type: text/html; charset=UTF-8
Body:----------pl--
<!--#set var="CONTENT_LANGUAGE" value="pl"
--><!--#set var="TITLE" value="B&#322;&#281;dne Content-Length!"
--><!--#include virtual="include/top.html" -->
&#379;&#261;danie <!--#echo var="REDIRECT_REQUEST_METHOD" -->
wymaga poprawnego nag&#322;&#243;wka <code>Content-Length</code>.
<!--#include virtual="include/bottom.html" -->
----------pl--
Content-language: pt-br
Content-type: text/html; charset=UTF-8
Body:-------pt-br--
<!--#set var="CONTENT_LANGUAGE" value="pt-br"
--><!--#set var="TITLE" value="Content-Length Inv&aacute;lido!"
--><!--#include virtual="include/top.html" -->
Uma requisi&ccedil;&atilde;o
do m&eacute;todo <!--#echo var="REDIRECT_REQUEST_METHOD"-->
requer um cabe&ccedil;alho <code>Content-Length</code> v&aacute;lido.
<!--#include virtual="include/bottom.html" -->
-------pt-br--
Content-language: pt
Content-type: text/html; charset=ISO-8859-1
Body:----------pt--
<!--#set var="TITLE" value="Content-Length incorrecto!"
--><!--#include virtual="include/top.html" -->
Um pedido com o m&eacute;todo <!--#echo var="REDIRECT_REQUEST_METHOD" -->
necessita de um cabe&ccedil;alho <code>Content-Length</code> v&aacute;lido.
<!--#include virtual="include/bottom.html" -->
----------pt--
Content-language: ro
Content-type: text/html; charset=UTF-8
Body:----------ro--
<!--#set var="CONTENT_LANGUAGE" value="ro"
--><!--#set var="TITLE" value="Content-Length invalid!"
--><!--#include virtual="include/top.html" -->
O cerere cu metoda <!--#echo var="REDIRECT_REQUEST_METHOD" -->
necesita un header <code>Content-Length</code> valid.
<!--#include virtual="include/bottom.html" -->
----------ro--
Content-language: sr
Content-type: text/html; charset=UTF-8
Body:----------sr--
<!--#set var="CONTENT_LANGUAGE" value="sr"
--><!--#set var="TITLE" value="Лоше Content-Length заглавље!"
--><!--#include virtual="include/top.html" -->
Захтев са <!--#echo var="REDIRECT_REQUEST_METHOD" -->
методом мора имати исправно <code>Content-Length</code>
(дужина садржаја) заглавље.
<!--#include virtual="include/bottom.html" -->
----------sr--
Content-language: sv
Content-type: text/html; charset=UTF-8
Body:----------sv--
<!--#set var="CONTENT_LANGUAGE" value="sv"
--><!--#set var="TITLE" value="Felaktig Content-Length!"
--><!--#include virtual="include/top.html" -->
En f&ouml;rfr&aring;gan med <!--#echo var="REDIRECT_REQUEST_METHOD" -->
metoden kr&auml;ver ett korrekt <code>Content-Length</code> huvud.
<!--#include virtual="include/bottom.html" -->
----------sv--
Content-language: tr
Content-type: text/html; charset=UTF-8
Body:----------tr--
<!--#set var="CONTENT_LANGUAGE" value="tr"
--><!--#set var="TITLE" value="Hatalı Content-Length başlığı!"
--><!--#include virtual="include/top.html" -->
<!--#echo var="REDIRECT_REQUEST_METHOD" --> yöntemini kullanan bir istek
geçerli bir <code>Content-Length</code> (içerik uzunluğu) başlığı gerektirir.
<!--#include virtual="include/bottom.html" -->
----------tr--

View file

@ -0,0 +1,231 @@
Content-language: cs
Content-type: text/html; charset=UTF-8
Body:----------cs--
<!--#set var="CONTENT_LANGUAGE" value="cs"
--><!--#set var="TITLE" value="Metoda nepovolena!"
--><!--#include virtual="include/top.html" -->
Metoda <!--#echo var="REDIRECT_REQUEST_METHOD" -->
není pro požadované URL povolena.
<!--#include virtual="include/bottom.html" -->
----------cs--
Content-language: de
Content-type: text/html; charset=UTF-8
Body:----------de--
<!--#set var="CONTENT_LANGUAGE" value="de"
--><!--#set var="TITLE" value="Methode nicht erlaubt!"
--><!--#include virtual="include/top.html" -->
Die <!--#echo var="REDIRECT_REQUEST_METHOD" -->-Methode
ist f&uuml;r den angeforderten URL nicht erlaubt.
<!--#include virtual="include/bottom.html" -->
----------de--
Content-language: en
Content-type: text/html; charset=UTF-8
Body:----------en--
<!--#set var="TITLE" value="Method not allowed!"
--><!--#include virtual="include/top.html" -->
The <!--#echo var="REDIRECT_REQUEST_METHOD" -->
method is not allowed for the requested URL.
<!--#include virtual="include/bottom.html" -->
----------en--
Content-language: es
Content-type: text/html
Body:----------es--
<!--#set var="TITLE" value="&iexcl;M&eacute;todo no permitido!" -->
<!--#include virtual="include/top.html" -->
No se permite el m&eacute;todo <!--#echo var="REDIRECT_REQUEST_METHOD" -->
para la URL solicitada.
<!--#include virtual="include/bottom.html" -->
----------es--
Content-language: fr
Content-type: text/html; charset=UTF-8
Body:----------fr--
<!--#set var="CONTENT_LANGUAGE" value="fr"
--><!--#set var="TITLE" value="M&eacute;thode interdite!"
--><!--#include virtual="include/top.html" -->
La m&eacute;thode <!--#echo var="REDIRECT_REQUEST_METHOD" -->
n'est pas utilisable pour l'URL demand&eacute;e.
<!--#include virtual="include/bottom.html" -->
----------fr--
Content-language: ga
Content-type: text/html; charset=UTF-8
Body:----------ga--
<!--#set var="TITLE" value="Modh neamhcheadaithe!"
--><!--#include virtual="include/top.html" -->
N&iacute;l cead an modh
<!--#echo var="REDIRECT_REQUEST_METHOD" -->
a &uacute;as&aacute;id leis an URL iarraithe.
<!--#include virtual="include/bottom.html" -->
----------ga--
Content-language: it
Content-type: text/html; charset=UTF-8
Body:----------it--
<!--#set var="CONTENT_LANGUAGE" value="it"
--><!--#set var="TITLE" value="Metodo non consentito!"
--><!--#include virtual="include/top.html" -->
Il metodo <!--#echo var="REDIRECT_REQUEST_METHOD" -->
non &egrave; consentito per l'URL richiesto.
<!--#include virtual="include/bottom.html" -->
----------it--
Content-language: ja
Content-type: text/html; charset=UTF-8
Body:----------ja--
<!--#set var="CONTENT_LANGUAGE" value="ja"
--><!--#set var="TITLE" value="Method not allowed!"
--><!--#include virtual="include/top.html" -->
<!--#echo var="REDIRECT_REQUEST_METHOD"-->
メソッドは、要求された URL に対しては許可されていません。
<!--#include virtual="include/bottom.html" -->
----------ja--
Content-language: ko
Content-type: text/html; charset=UTF-8
Body:----------ko--
<!--#set var="CONTENT_LANGUAGE" value="ko"
--><!--#set var="TITLE" value="허용되지 않는 요청 방식!"
--><!--#include virtual="include/top.html" -->
<!--#echo encoding="none" var="REDIRECT_REQUEST_METHOD"--> 방식은
요청한 URL에 사용할 수 없습니다.
<!--#include virtual="include/bottom.html" -->
----------ko--
Content-language: nl
Content-type: text/html; charset=UTF-8
Body:----------nl--
<!--#set var="CONTENT_LANGUAGE" value="nl"
--><!--#set var="TITLE" value="Type methode niet toegelaten!"
--><!--#include virtual="include/top.html" -->
Het <!--#echo var="REDIRECT_REQUEST_METHOD" -->
type methode is niet toegelaten voor de gevraagde URL.
<!--#include virtual="include/bottom.html" -->
----------nl--
Content-language: nb
Content-type: text/html; charset=UTF-8
Body:----------nb--
<!--#set var="CONTENT_LANGUAGE" value="nb"
--><!--#set var="TITLE" value="Metoden er ikke tillatt!"
--><!--#include virtual="include/top.html" -->
<!--#echo var="REDIRECT_REQUEST_METHOD" --> metoden er ikke
tillatt for den forespurte adressen.
<!--#include virtual="include/bottom.html" -->
----------nb--
Content-language: pl
Content-type: text/html; charset=UTF-8
Body:----------pl--
<!--#set var="CONTENT_LANGUAGE" value="pl"
--><!--#set var="TITLE" value="Niedozwolona metoda!"
--><!--#include virtual="include/top.html" -->
Metoda <!--#echo var="REDIRECT_REQUEST_METHOD" -->
jest niedozwolona dla podanego URL-a.
<!--#include virtual="include/bottom.html" -->
----------pl--
Content-language: pt-br
Content-type: text/html; charset=UTF-8
Body:-------pt-br--
<!--#set var="CONTENT_LANGUAGE" value="pt-br"
--><!--#set var="TITLE" value="M&eacute;todo n&atilde;o permitido!"
--><!--#include virtual="include/top.html" -->
O m&eacute;todo <!--#echo var="REDIRECT_REQUEST_METHOD" -->
n&atilde;o &eacute; permitido para a URL requisitada.
<!--#include virtual="include/bottom.html" -->
-------pt-br--
Content-language: pt
Content-type: text/html; charset=ISO-8859-1
Body:----------pt--
<!--#set var="TITLE" value="M&eacute;todo n&atilde;o permitido!"
--><!--#include virtual="include/top.html" -->
O m&eacute;todo <!--#echo var="REDIRECT_REQUEST_METHOD" --> n&atilde;o
&eacute; permitido para o URL pedido.
<!--#include virtual="include/bottom.html" -->
----------pt--
Content-language: ro
Content-type: text/html; charset=UTF-8
Body:----------ro--
<!--#set var="CONTENT_LANGUAGE" value="ro"
--><!--#set var="TITLE" value="Metoda nepermisa!"
--><!--#include virtual="include/top.html" -->
Metoda <!--#echo var="REDIRECT_REQUEST_METHOD" -->
nu este permisa pentru URL-ul cerut.
<!--#include virtual="include/bottom.html" -->
----------ro--
Content-language: sr
Content-type: text/html; charset=UTF-8
Body:----------sr--
<!--#set var="CONTENT_LANGUAGE" value="sr"
--><!--#set var="TITLE" value="Метод није дозвољен!"
--><!--#include virtual="include/top.html" -->
<!--#echo var="REDIRECT_REQUEST_METHOD" -->
метод није дозвољен за захтевани УРЛ.
<!--#include virtual="include/bottom.html" -->
----------sr--
Content-language: sv
Content-type: text/html; charset=UTF-8
Body:----------sv--
<!--#set var="CONTENT_LANGUAGE" value="sv"
--><!--#set var="TITLE" value="Metoden inte till&aring;ten!"
--><!--#include virtual="include/top.html" -->
<!--#echo var="REDIRECT_REQUEST_METHOD" -->
metoden &auml;r inte till&aring;ten f&ouml;r den f&ouml;rfr&aring;gade
adressen.
<!--#include virtual="include/bottom.html" -->
----------sv--
Content-language: tr
Content-type: text/html; charset=UTF-8
Body:----------tr--
<!--#set var="CONTENT_LANGUAGE" value="tr"
--><!--#set var="TITLE" value="Yönteme izin verilmedi!"
--><!--#include virtual="include/top.html" -->
<!--#echo var="REDIRECT_REQUEST_METHOD" -->
yöntemi istediğiniz URL için kullanılamaz.
<!--#include virtual="include/bottom.html" -->
----------tr--

View file

@ -0,0 +1,464 @@
Content-language: cs
Content-type: text/html; charset=UTF-8
Body:----------cs--
<!--#set var="CONTENT_LANGUAGE" value="cs"
--><!--#set var="TITLE" value="Objekt nenalezen!"
--><!--#include virtual="include/top.html" -->
Požadované URL nebylo na tomto serveru nalezeno.
<!--#if expr="-n v('HTTP_REFERER')" -->
Zdá se, že odkaz na
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">odkazující
stránce</a> je chybný nebo zastaralý. Informujte, prosím, autora
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">této stránky</a>
o&nbsp;chybě.
<!--#else -->
Pokud jste zadal(a) URL ručně, zkontrolujte, prosím,
zda jste zadal(a) URL správně, a zkuste to znovu.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------cs--
Content-language: de
Content-type: text/html; charset=UTF-8
Body:----------de--
<!--#set var="CONTENT_LANGUAGE" value="de"
--><!--#set var="TITLE" value="Objekt nicht gefunden!"
--><!--#include virtual="include/top.html" -->
Der angeforderte URL konnte auf dem Server nicht gefunden werden.
<!--#if expr="-n v('HTTP_REFERER')" -->
Der Link auf der
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">verweisenden
Seite</a> scheint falsch oder nicht mehr aktuell zu sein.
Bitte informieren Sie den Autor
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">dieser Seite</a>
&uuml;ber den Fehler.
<!--#else -->
Sofern Sie den URL manuell eingegeben haben,
&uuml;berpr&uuml;fen Sie bitte die Schreibweise und versuchen Sie es erneut.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------de--
Content-language: en
Content-type: text/html; charset=UTF-8
Body:----------en--
<!--#set var="TITLE" value="Object not found!"
--><!--#include virtual="include/top.html" -->
The requested URL was not found on this server.
<!--#if expr="-n v('HTTP_REFERER')" -->
The link on the
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">referring
page</a> seems to be wrong or outdated. Please inform the author of
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">that page</a>
about the error.
<!--#else -->
If you entered the URL manually please check your
spelling and try again.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------en--
Content-language: es
Content-type: text/html
Body:----------es--
<!--#set var="TITLE" value="&iexcl;Objeto no localizado!" -->
<!--#include virtual="include/top.html" -->
No se ha localizado la URL solicitada en este servidor.
<!--#if expr="-n v('HTTP_REFERER')" -->
La URL de la <a href="<!--#echo encoding="url"
var="HTTP_REFERER"-->">p&aacute;gina que le ha remitido</a>
parece ser err&oacute;nea o estar obsoleta. Por favor, informe del error
al autor de <a href="<!--#echo encoding="url" var="HTTP_REFERER"-->">esa
p&aacute;gina</a>.
<!--#else -->
Si usted ha introducido la URL manualmente, por favor revise su
ortograf&iacute;a e int&eacute;ntelo de nuevo.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------es--
Content-language: fr
Content-type: text/html; charset=UTF-8
Body:----------fr--
<!--#set var="CONTENT_LANGUAGE" value="fr"
--><!--#set var="TITLE" value="Objet non trouv&eacute;!"
--><!--#include virtual="include/top.html" -->
L'URL demand&eacute;e n'a pas pu &ecirc;tre trouv&eacute;e sur ce serveur.
<!--#if expr="-n v('HTTP_REFERER')" -->
La r&eacute;f&eacute;rence sur
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">la page
cit&eacute;e</a>
semble &ecirc;tre erron&eacute;e ou perim&eacute;e. Nous vous prions
d'informer l'auteur de
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">cette page</a>
de cette erreur.
<!--#else -->
Si vous avez tap&eacute; l'URL &agrave; la main, veuillez v&eacute;rifier
l'orthographe et r&eacute;essayer.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------fr--
Content-language: ga
Content-type: text/html; charset=UTF-8
Body:----------ga--
<!--#set var="TITLE" value="Aidhm ar iarraidh!"
--><!--#include virtual="include/top.html" -->
N&iacute;or aimsigh an URL iarraithe ar an fhreastala&iacute; seo.
<!--#if expr="-n v('HTTP_REFERER')" -->
Is cos&uacute;il go bhfuil an nasc ar an
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">leathanach
thagarthach</a> m&iacute;cheart n&oacute; as d&aacute;ta.
Cur in i&uacute;l d'&uacute;adar
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->"
>an leathanach sin</a> go bhfuil earr&aacute;id ann, le do thoil.
<!--#else -->
M&aacute; chuir t&uacute; isteach an URL t&uacute; f&eacute;in, deimhnigh
go bhfuil s&eacute; litrithe i gceart agat, agus d&eacute;an iarracht eile
le do thoil.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------ga--
Content-language: it
Content-type: text/html; charset=UTF-8
Body:----------it--
<!--#set var="CONTENT_LANGUAGE" value="it"
--><!--#set var="TITLE" value="Oggetto non trovato!"
--><!--#include virtual="include/top.html" -->
L'URL richiesto non esiste su questo server.
<!--#if expr="-n v('HTTP_REFERER')" -->
Il link della
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">pagina da cui
sei arrivato</a> potrebbe essere errato o non essere pi&ugrave; valido.
Per favore, informa dell'errore l'autore della
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">pagina</a>.
<!--#else -->
Se hai scritto l'URL a mano, per favore controlla che
non ci siano errori.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------it--
Content-language: ja
Content-type: text/html; charset=UTF-8
Body:----------ja--
<!--#set var="CONTENT_LANGUAGE" value="ja"
--><!--#set var="TITLE" value="Object not found!"
--><!--#include virtual="include/top.html" -->
要求された URL は本サーバでは見つかりませんでした。
<!--#if expr="-n v('HTTP_REFERER')" -->
<a href="<!--#echo encoding="url" var="HTTP_REFERER"-->">
参照元ページ</a>のリンクが間違っているか、古くなってしまっているようです。
<a href="<!--#echo encoding="url" var="HTTP_REFERER"-->"
>ページ</a>の著者にこのエラーをお知らせ下さい。
<!--#else -->
もし手入力で URL を入力した場合は、綴りを確認して再度お試し下さい。
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------ja--
Content-language: ko
Content-type: text/html; charset=UTF-8
Body:----------ko--
<!--#set var="CONTENT_LANGUAGE" value="ko"
--><!--#set var="TITLE" value="객체 없음!"
--><!--#include virtual="include/top.html" -->
요청한 URL을 이 서버에서 찾을 수 없습니다.
<!--#if expr="-n v('HTTP_REFERER')" -->
<a href="<!--#echo encoding="url" var="HTTP_REFERER"-->">이전
페이지</a>에 있는 링크가 잘못되었거나 오래되어 없어진 것 같습니다.
<a href="<!--#echo encoding="url" var="HTTP_REFERER"-->">그 페이지</a>를
만든이에게 이 사실을 알려주시기 바랍니다.
<!--#else -->
URL을 직접 입력하셨다면 바르게 입력하셨는지 확인하시고 다시 시도하시기
바랍니다.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------ko--
Content-language: nl
Content-type: text/html; charset=UTF-8
Body:----------nl--
<!--#set var="CONTENT_LANGUAGE" value="nl"
--><!--#set var="TITLE" value="Object niet gevonden!"
--><!--#include virtual="include/top.html" -->
De gevraagde URL was niet gevonden op deze server.
<!--#if expr="-n v('HTTP_REFERER')" -->
De link op
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">deze pagina
pagina</a> is verkeerd of achterhaald. Gelieve de auteur van
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">die pagina</a>
in te lichten over deze fout.
<!--#else -->
Indien u de URL manueel hebt ingevuld, gelieve uw
spelling te controleren en probeer opnieuw.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------nl--
Content-language: nb
Content-type: text/html; charset=UTF-8
Body:----------nb--
<!--#set var="CONTENT_LANGUAGE" value="nb"
--><!--#set var="TITLE" value="Objektet ble ikke funnet!"
--><!--#include virtual="include/top.html" -->
Den etterspurte adressen finnes ikke på denne serveren.
<!--#if expr="-n v('HTTP_REFERER')" -->
Lenken på den
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">forrige siden</a>
ser ut til å være feil eller utdatert. Venligst informer forfatteren av
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">siden</a>
om feilen.
<!--#else -->
Om du skrev inn adressen manuelt, vennligst kontroller stavingen og
forsøk igjen.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------nb--
Content-language: pl
Content-type: text/html; charset=UTF-8
Body:----------pl--
<!--#set var="CONTENT_LANGUAGE" value="pl"
--><!--#set var="TITLE" value="Nie znaleziono obiektu!"
--><!--#include virtual="include/top.html" -->
Nie znaleziono &#380;&#261;danego URL-a na tym serwerze.
<!--#if expr="-n v('HTTP_REFERER')" -->
Odno&#347;nik na
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">referuj&#261;cej stronie
</a> wydaje si&#281; by&#263; nieprawid&#322;owy lub nieaktualny. Poinformuj autora
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">tej strony</a>
o problemie.
<!--#else -->
Je&#347;li wpisa&#322;e&#347; URL-a r&#281;cznie, sprawd&#378;, czy si&#281; nie pomyli&#322;e&#347;.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------pl--
Content-language: pt-br
Content-type: text/html; charset=UTF-8
Body:-------pt-br--
<!--#set var="CONTENT_LANGUAGE" value="pt-br"
--><!--#set var="TITLE" value="Objeto n&atilde;o encontrado!"
--><!--#include virtual="include/top.html" -->
A URL requisitada n&atilde;o foi encontrada neste servidor.
<!--#if expr="-n v('HTTP_REFERER')" -->
O link na
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">p&aacute;gina
referida</a> parece estar com algum erro ou desatualizado. Por favor informe o
autor <a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">desta
p&aacute;gina</a> sobre o erro.
<!--#else -->
Se voc&ecirc; digitou o endere&ccedil;o (URL) manualmente,
por favor verifique novamente a sintaxe do endere&ccedil;o.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
-------pt-br--
Content-language: pt
Content-type: text/html; charset=ISO-8859-1
Body:----------pt--
<!--#set var="TITLE" value="M&eacute;todo n&atilde;o permitido!"
--><!--#include virtual="include/top.html" -->
O m&eacute;todo <!--#echo var="REDIRECT_REQUEST_METHOD" --> n&atilde;o
&eacute; permitido para o URL pedido.
<!--#include virtual="include/bottom.html" -->
----------pt--
Content-language: ro
Content-type: text/html; charset=UTF-8
Body:----------ro--
<!--#set var="CONTENT_LANGUAGE" value="ro"
--><!--#set var="TITLE" value="Obiectul nu a fost gasit!"
--><!--#include virtual="include/top.html" -->
URL-ul cerut nu a fost gasit pe acest server.
<!--#if expr="-n v('HTTP_REFERER')" -->
Link-ul de pe
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">pagina
de unde ati venit</a> pare a fi gresit sau invechit. Va rugam informati autorul
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">acestei pagini</a>
despre eroare.
<!--#else -->
Daca ati introdus URL-ul manual, va rugam verificati
corectitudinea si incercati din nou.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------ro--
Content-language: sr
Content-type: text/html; charset=UTF-8
Body:----------sr--
<!--#set var="CONTENT_LANGUAGE" value="sr"
--><!--#set var="TITLE" value="Објекат није пронађен!"
--><!--#include virtual="include/top.html" -->
Захтевани УРЛ није пронађен на овом серверу.
<!--#if expr="-n v('HTTP_REFERER')" -->
Изгледа да је веза на
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">исходишној
страници</a> погрешна или застарела. Молимо обавестите аутора
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">те странице</a>
о грешци.
<!--#else -->
Уколико сте УРЛ унели ручно, молимо проверите могуће
грешке и пробајте поново.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------sr--
Content-language: sv
Content-type: text/html; charset=UTF-8
Body:----------sv--
<!--#set var="CONTENT_LANGUAGE" value="sv"
--><!--#set var="TITLE" value="Objektet hittas ej!"
--><!--#include virtual="include/top.html" -->
Den efterfr&aring;gade adressen hittades inte p&aring; denna server.
<!--#if expr="-n v('HTTP_REFERER')" -->
L&auml;nken p&aring; den
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">tidigare sidan</a>
verkar vara felaktig eller inaktuell. V&auml;nligen informera f&ouml;rfattaren av
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">sidan</a>
om felet.
<!--#else -->
Om du skrev in adressen manuellt s&aring; kontrollera din stavning och
f&ouml;rs&ouml;k igen.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------sv--
Content-language: tr
Content-type: text/html; charset=UTF-8
Body:----------tr--
<!--#set var="CONTENT_LANGUAGE" value="tr"
--><!--#set var="TITLE" value="Nesne mevcut değil!"
--><!--#include virtual="include/top.html" -->
Talep ettiğiniz URL, sunucu üzerinde bulunmuyor.
<!--#if expr="-n v('HTTP_REFERER')" -->
<a href="<!--#echo encoding="url" var="HTTP_REFERER" -->">İstek yapılan sayfa</a>
üzerindeki bağlantı güncel değil. Lütfen <a href="<!--#echo encoding="url"
var="HTTP_REFERER" -->">sayfa</a> yazarını hata hakkında bilgilendirin.
<!--#else -->
URL'yi elle girdiyseniz, yazdıklarınızı gözden geçirip yeniden deneyin.
<!--#endif -->
<!--#include virtual="include/bottom.html" -->
----------tr--

View file

@ -0,0 +1,219 @@
Content-language: cs
Content-type: text/html; charset=UTF-8
Body:----------cs--
<!--#set var="CONTENT_LANGUAGE" value="cs"
--><!--#set var="TITLE" value="Nelze zpracovat požadavek!"
--><!--#include virtual="include/top.html" -->
Server nepodporuje akci požadovanou prohlížečem.
<!--#include virtual="include/bottom.html" -->
----------cs--
Content-language: de
Content-type: text/html; charset=UTF-8
Body:----------de--
<!--#set var="CONTENT_LANGUAGE" value="de"
--><!--#set var="TITLE" value="Anfrage nicht ausf&uuml;hrbar!"
--><!--#include virtual="include/top.html" -->
Die vom Browser angeforderte Aktion wird vom Server
nicht unterst&uuml;tzt.
<!--#include virtual="include/bottom.html" -->
----------de--
Content-language: en
Content-type: text/html; charset=UTF-8
Body:----------en--
<!--#set var="TITLE" value="Cannot process request!"
--><!--#include virtual="include/top.html" -->
The server does not support the action requested by the browser.
<!--#include virtual="include/bottom.html" -->
----------en--
Content-language: es
Content-type: text/html
Body:----------es--
<!--#set var="TITLE" value="&iexcl;No se puede procesar la petici&oacute;n!" -->
<!--#include virtual="include/top.html" -->
El servidor no soporta la acci&oacute;n
solicitada por el navegador.
<!--#include virtual="include/bottom.html" -->
----------es--
Content-language: fr
Content-type: text/html; charset=UTF-8
Body:----------fr--
<!--#set var="CONTENT_LANGUAGE" value="fr"
--><!--#set var="TITLE" value="La requ&ecirc;te ne peut &ecirc;tre effectu&eacute;e!"
--><!--#include virtual="include/top.html" -->
Le serveur n'est pas en mesure d'effectuer l'action
demand&eacute;e par le navigateur.
<!--#include virtual="include/bottom.html" -->
----------fr--
Content-language: ga
Content-type: text/html; charset=UTF-8
Body:----------ga--
<!--#set var="TITLE" value="Iarratais dophr&oacute;ise&aacute;ilte!"
--><!--#include virtual="include/top.html" -->
N&iacute;l taca&iacute;ocht ag an fhreastala&iacute; don gn&iacute;omh
at&aacute; &aacute; iarraidh ag an mbrabhs&aacute;la&iacute;.
<!--#include virtual="include/bottom.html" -->
----------ga--
Content-language: it
Content-type: text/html; charset=UTF-8
Body:----------it--
<!--#set var="CONTENT_LANGUAGE" value="it"
--><!--#set var="TITLE" value="La richiesta non pu&ograve; essere soddisfatta!"
--><!--#include virtual="include/top.html" -->
Il server non supporta il tipo di azione richiesta dal browser.
<!--#include virtual="include/bottom.html" -->
----------it--
Content-language: ja
Content-type: text/html; charset=UTF-8
Body:----------ja--
<!--#set var="CONTENT_LANGUAGE" value="ja"
--><!--#set var="TITLE" value="Cannot process request!"
--><!--#include virtual="include/top.html" -->
ブラウザの要求したアクションは、サポートしていません。
<!--#include virtual="include/bottom.html" -->
----------ja--
Content-language: ko
Content-type: text/html; charset=UTF-8
Body:----------ko--
<!--#set var="CONTENT_LANGUAGE" value="ko"
--><!--#set var="TITLE" value="요청 처리 실패!"
--><!--#include virtual="include/top.html" -->
브라우저가 보낸 요청을 이 서버가 지원하지 않습니다.
<!--#include virtual="include/bottom.html" -->
----------ko--
Content-language: nl
Content-type: text/html; charset=UTF-8
Body:----------nl--
<!--#set var="CONTENT_LANGUAGE" value="nl"
--><!--#set var="TITLE" value="Kan vraag niet verwerken!"
--><!--#include virtual="include/top.html" -->
De server ondersteunt de actie, gevraagd door de browser, niet.
<!--#include virtual="include/bottom.html" -->
----------nl--
Content-language: nb
Content-type: text/html; charset=UTF-8
Body:----------nb--
<!--#set var="CONTENT_LANGUAGE" value="nb"
--><!--#set var="TITLE" value="Kan ikke behandle forspørsel!"
--><!--#include virtual="include/top.html" -->
Serveren støtter ikke den handlingen som ønskes utført av
nettleseren.
<!--#include virtual="include/bottom.html" -->
----------nb--
Content-language: pl
Content-type: text/html; charset=UTF-8
Body:----------pl--
<!--#set var="CONTENT_LANGUAGE" value="pl"
--><!--#set var="TITLE" value="&#379;&#261;danie nieobs&#322;ugiwane!"
--><!--#include virtual="include/top.html" -->
Ten serwer nie obs&#322;uguje &#380;&#261;dania przes&#322;anego przez przegl&#261;dark&#281;.
<!--#include virtual="include/bottom.html" -->
----------pl--
Content-language: pt-br
Content-type: text/html; charset=UTF-8
Body:-------pt-br--
<!--#set var="CONTENT_LANGUAGE" value="pt-br"
--><!--#set var="TITLE" value="A requisi&ccedil;&atilde;o n&atilde;o pode ser processada!"
--><!--#include virtual="include/top.html" -->
O servidor n&atilde;o suporta a a&ccedil;&atilde;o requisitada pelo
seu "browser".
<!--#include virtual="include/bottom.html" -->
-------pt-br--
Content-language: pt
Content-type: text/html; charset=ISO-8859-1
Body:----------pt--
<!--#set var="TITLE" value="N&atilde;o posso processar o pedido!"
--><!--#include virtual="include/top.html" -->
O servidor n&atilde;o suporta a ac&ccedil;&atilde;o pedida pelo
<i>browser</i>.
<!--#include virtual="include/bottom.html" -->
----------pt--
Content-language: ro
Content-type: text/html; charset=UTF-8
Body:----------ro--
<!--#set var="CONTENT_LANGUAGE" value="ro"
--><!--#set var="TITLE" value="Cererea nu poate fi procesata!"
--><!--#include virtual="include/top.html" -->
Serverul nu suporta actiunea ceruta de browser.
<!--#include virtual="include/bottom.html" -->
----------ro--
Content-language: sr
Content-type: text/html; charset=UTF-8
Body:----------sr--
<!--#set var="CONTENT_LANGUAGE" value="sr"
--><!--#set var="TITLE" value="Не могу да обрадим захтев!"
--><!--#include virtual="include/top.html" -->
Сервер не подржава акцију коју је читач захтевао.
<!--#include virtual="include/bottom.html" -->
----------sr--
Content-language: sv
Content-type: text/html; charset=UTF-8
Body:----------sv--
<!--#set var="CONTENT_LANGUAGE" value="sv"
--><!--#set var="TITLE" value="Kan ikke utf!"
--><!--#include virtual="include/top.html" -->
Servern st&ouml;djer inte den handling som &ouml;nskades
av webbl&auml;saren.
<!--#include virtual="include/bottom.html" -->
----------sv--
Content-language: tr
Content-type: text/html; charset=UTF-8
Body:----------tr--
<!--#set var="CONTENT_LANGUAGE" value="tr"
--><!--#set var="TITLE" value="İstek yerine getirilemiyor!"
--><!--#include virtual="include/top.html" -->
Sunucu, tarayıcı tarafından istenen eylemi desteklemiyor.
<!--#include virtual="include/bottom.html" -->
----------tr--

View file

@ -0,0 +1,222 @@
Content-language: cs
Content-type: text/html; charset=UTF-8
Body:----------cs--
<!--#set var="CONTENT_LANGUAGE" value="cs"
--><!--#set var="TITLE" value="Vstupní podmínka selhala!"
--><!--#include virtual="include/top.html" -->
Vstupní podmínka pro požadavek o&nbsp;zadané URL nesplnila pozitivní
vyhodnocení.
<!--#include virtual="include/bottom.html" -->
----------cs--
Content-language: de
Content-type: text/html; charset=UTF-8
Body:----------de--
<!--#set var="CONTENT_LANGUAGE" value="de"
--><!--#set var="TITLE" value="Vorbedingung verfehlt!"
--><!--#include virtual="include/top.html" -->
Die f&uuml;r den Abruf der angeforderten URL notwendige
Vorbedingung wurde nicht erf&uuml;llt.
<!--#include virtual="include/bottom.html" -->
----------de--
Content-language: en
Content-type: text/html; charset=UTF-8
Body:----------en--
<!--#set var="TITLE" value="Precondition failed!"
--><!--#include virtual="include/top.html" -->
The precondition on the request for the URL failed positive evaluation.
<!--#include virtual="include/bottom.html" -->
----------en--
Content-language: es
Content-type: text/html
Body:----------es--
<!--#set var="TITLE" value="&iexcl;Fallo en la pre-condici&oacute;on!" -->
<!--#include virtual="include/top.html" -->
No se ha evaluado positivamente la pre-condici&oacute;n
de la petici&oacute;n para la URL.
<!--#include virtual="include/bottom.html" -->
----------es--
Content-language: fr
Content-type: text/html; charset=UTF-8
Body:----------fr--
<!--#set var="CONTENT_LANGUAGE" value="fr"
--><!--#set var="TITLE" value="Pr&eacute;condition n&eacute;gative!"
--><!--#include virtual="include/top.html" -->
La pr&eacute;condition pour l'URL demand&eacute; a &eacute;t&eacute;
&eacute;valu&eacute;e n&eacute;gativement.
<!--#include virtual="include/bottom.html" -->
----------fr--
Content-language: ga
Content-type: text/html; charset=UTF-8
Body:----------ga--
<!--#set var="TITLE" value="Theip ar r&eacute;amhchoinn&iacute;oll!"
--><!--#include virtual="include/top.html" -->
Theip meast&oacute;ireacht an r&eacute;amhchoinn&iacute;oll
don iarratais den URL.
<!--#include virtual="include/bottom.html" -->
----------ga--
Content-language: it
Content-type: text/html; charset=UTF-8
Body:----------it--
<!--#set var="CONTENT_LANGUAGE" value="it"
--><!--#set var="TITLE" value="Criteri di precondizione non soddisfatti!"
--><!--#include virtual="include/top.html" -->
I criteri di precondizione per consentire l'invio dell'URL
richiesto non sono stati soddisfatti.
<!--#include virtual="include/bottom.html" -->
----------it--
Content-language: ja
Content-type: text/html; charset=UTF-8
Body:----------ja--
<!--#set var="CONTENT_LANGUAGE" value="ja"
--><!--#set var="TITLE" value="Precondition failed!"
--><!--#include virtual="include/top.html" -->
指定された URL へのリクエストにおける事前条件が満たされませんでした。
<!--#include virtual="include/bottom.html" -->
----------ja--
Content-language: ko
Content-type: text/html; charset=UTF-8
Body:----------ko--
<!--#set var="CONTENT_LANGUAGE" value="ko"
--><!--#set var="TITLE" value="주어진 조건 실패!"
--><!--#include virtual="include/top.html" -->
미리 주어진 조건이 만족되지 않아서 URL 요청을 처리할 수 없습니다.
<!--#include virtual="include/bottom.html" -->
----------ko--
Content-language: nl
Content-type: text/html; charset=UTF-8
Body:----------nl--
<!--#set var="CONTENT_LANGUAGE" value="nl"
--><!--#set var="TITLE" value="Startvoorwaarde niet voldaan!"
--><!--#include virtual="include/top.html" -->
Een startvoorwaarde werd niet voldaan bij verwerking van de vraag naar de URL.
<!--#include virtual="include/bottom.html" -->
----------nl--
Content-language: nb
Content-type: text/html; charset=UTF-8
Body:----------nb--
<!--#set var="CONTENT_LANGUAGE" value="nb"
--><!--#set var="TITLE" value="Nødvendig forutsetning ikke oppfyllt!"
--><!--#include virtual="include/top.html" -->
Den nødvendige forutsetningen for forespørselen passerte ikke
vurderingen med positivt resultat.
<!--#include virtual="include/bottom.html" -->
----------nb--
Content-language: pl
Content-type: text/html; charset=UTF-8
Body:----------pl--
<!--#set var="CONTENT_LANGUAGE" value="pl"
--><!--#set var="TITLE" value="Niespe&#322;niony warunek!"
--><!--#include virtual="include/top.html" -->
Warunek wst&#281;pny dla URL-a nie zosta&#322; spe&#322;niony.
<!--#include virtual="include/bottom.html" -->
----------pl--
Content-language: pt-br
Content-type: text/html; charset=UTF-8
Body:-------pt-br--
<!--#set var="CONTENT_LANGUAGE" value="pt-br"
--><!--#set var="TITLE" value="Falha de precondi&ccedil;&atilde;o!"
--><!--#include virtual="include/top.html" -->
A condi&ccedil;&atilde;o necess&aacute;ria para a
requisi&ccedil;&atilde;o da URL foi avaliada como falsa.
<!--#include virtual="include/bottom.html" -->
-------pt-br--
Content-language: pt
Content-type: text/html; charset=ISO-8859-1
Body:----------pt--
<!--#set var="TITLE" value="Pr&eacute;-condi&ccedil;&atilde;o falhou!"
--><!--#include virtual="include/top.html" -->
A condi&ccedil;&atilde;o necess&aacute;ria ao pedido do URL
foi avaliada com resultado negativo.
<!--#include virtual="include/bottom.html" -->
----------pt--
Content-language: ro
Content-type: text/html; charset=UTF-8
Body:----------ro--
<!--#set var="CONTENT_LANGUAGE" value="ro"
--><!--#set var="TITLE" value="Precondition failed!"
--><!--#include virtual="include/top.html" -->
Preconditionarea pentru cererea URL-ului nu a fost evaluata pozitiv.
<!--#include virtual="include/bottom.html" -->
----------ro--
Content-language: sr
Content-type: text/html; charset=UTF-8
Body:----------sr--
<!--#set var="CONTENT_LANGUAGE" value="sr"
--><!--#set var="TITLE" value="Предуслов није испуњен!"
--><!--#include virtual="include/top.html" -->
Предуслов за захтев УРЛ-а није испуњен.
<!--#include virtual="include/bottom.html" -->
----------sr--
Content-language: sv
Content-type: text/html; charset=UTF-8
Body:----------sv--
<!--#set var="CONTENT_LANGUAGE" value="sv"
--><!--#set var="TITLE" value="N&ouml;dv&auml;ndig f&ouml;ruts&auml;ttning misslyckades!"
--><!--#include virtual="include/top.html" -->
Den n&ouml;dv&auml;ndiga f&ouml;ruts&auml;ttningen f&ouml;r
adressf&ouml;rfr&aring;gan passerade inte utv&auml;rderingen
med acceptabelt resultat.
<!--#include virtual="include/bottom.html" -->
----------sv--
Content-language: tr
Content-type: text/html; charset=UTF-8
Body:----------tr--
<!--#set var="CONTENT_LANGUAGE" value="tr"
--><!--#set var="TITLE" value="Önkoşul sağlanamadı!"
--><!--#include virtual="include/top.html" -->
URL talebinin önkoşulu olumlanamadı.
<!--#include virtual="include/bottom.html" -->
----------tr--

View file

@ -0,0 +1,246 @@
Content-language: cs
Content-type: text/html; charset=UTF-8
Body:----------cs--
<!--#set var="CONTENT_LANGUAGE" value="cs"
--><!--#set var="TITLE" value="Požadovaná entita je příliš velká!"
--><!--#include virtual="include/top.html" -->
Metoda <!--#echo var="REDIRECT_REQUEST_METHOD" -->
nedovoluje přenos dat nebo objem dat
přesahuje kapacitní limit.
<!--#include virtual="include/bottom.html" -->
----------cs--
Content-language: de
Content-type: text/html; charset=UTF-8
Body:----------de--
<!--#set var="CONTENT_LANGUAGE" value="de"
--><!--#set var="TITLE" value="&Uuml;bergebene Daten zu gro&szlig;!"
--><!--#include virtual="include/top.html" -->
Die bei der Anfrage &uuml;bermittelten Daten sind f&uuml;r
die <!--#echo var="REDIRECT_REQUEST_METHOD" -->-Methode
nicht erlaubt oder die Datenmenge hat das Maximum &uuml;berschritten.
<!--#include virtual="include/bottom.html" -->
----------de--
Content-language: en
Content-type: text/html; charset=UTF-8
Body:----------en--
<!--#set var="TITLE" value="Request entity too large!"
--><!--#include virtual="include/top.html" -->
The <!--#echo var="REDIRECT_REQUEST_METHOD" -->
method does not allow the data transmitted, or the data volume
exceeds the capacity limit.
<!--#include virtual="include/bottom.html" -->
----------en--
Content-language: es
Content-type: text/html
Body:----------es--
<!--#set var="TITLE" value="&iexcl;La entidad solicitada es demasiado grande!" -->
<!--#include virtual="include/top.html" -->
El m&eacute;todo <!--#echo var="REDIRECT_REQUEST_METHOD"-->
no permite transmitir la informaci&oacute;n, o el
volumen de la informaci&oacute;n excede los l&iacute;mites
de capacidad del mismo.
<!--#include virtual="include/bottom.html" -->
----------es--
Content-language: fr
Content-type: text/html; charset=UTF-8
Body:----------fr--
<!--#set var="CONTENT_LANGUAGE" value="fr"
--><!--#set var="TITLE" value="Volume de la demande trop grand!"
--><!--#include virtual="include/top.html" -->
La m&eacute;thode <!--#echo var="REDIRECT_REQUEST_METHOD" -->
n'autorise pas le transfert de ces donn&eacute;es ou bien le volume
des donn&eacute;es exc&egrave;de la limite de capacit&eacute;.
<!--#include virtual="include/bottom.html" -->
----------fr--
Content-language: ga
Content-type: text/html; charset=UTF-8
Body:----------ga--
<!--#set var="TITLE" value="Iarratais ar aon&aacute;n r&oacute;mh&oacute;r!"
--><!--#include virtual="include/top.html" -->
N&iacute; ligeann an modh <!--#echo var="REDIRECT_REQUEST_METHOD" --> an
tarchur sonra&iacute;ocht tr&iacute;d, n&oacute; t&aacute; an m&eacute;id
sonra&iacute;ocht breis ar an teoireann cumas.
<!--#include virtual="include/bottom.html" -->
----------ga--
Content-language: it
Content-type: text/html; charset=UTF-8
Body:----------it--
<!--#set var="CONTENT_LANGUAGE" value="it"
--><!--#set var="TITLE" value="Richiesta troppo grande!"
--><!--#include virtual="include/top.html" -->
Il metodo <!--#echo var="REDIRECT_REQUEST_METHOD" -->
non consente di trasferire dati, oppure la quantit&agrave; di dati
richiesti &egrave; eccessiva.
<!--#include virtual="include/bottom.html" -->
----------it--
Content-language: ja
Content-type: text/html; charset=UTF-8
Body:----------ja--
<!--#set var="CONTENT_LANGUAGE" value="ja"
--><!--#set var="TITLE" value="Request entity too large!"
--><!--#include virtual="include/top.html" -->
<!--#echo var="REDIRECT_REQUEST_METHOD"-->
メソッドがデータの送信を許可していないか、
データ量が許容量を超えています。
<!--#include virtual="include/bottom.html" -->
----------ja--
Content-language: ko
Content-type: text/html; charset=UTF-8
Body:----------ko--
<!--#set var="CONTENT_LANGUAGE" value="ko"
--><!--#set var="TITLE" value="너무 긴 요청!"
--><!--#include virtual="include/top.html" -->
<!--#echo encoding="none" var="REDIRECT_REQUEST_METHOD"--> 방식의
요청으로는 내용을 보낼 수 없거나, 또는 보내온 내용이 그 방식에서 허용하는
최대 길이를 넘었습니다.
<!--#include virtual="include/bottom.html" -->
----------ko--
Content-language: nl
Content-type: text/html; charset=UTF-8
Body:----------nl--
<!--#set var="CONTENT_LANGUAGE" value="nl"
--><!--#set var="TITLE" value="Volume van gevraagde entiteit te groot!"
--><!--#include virtual="include/top.html" -->
Het <!--#echo var="REDIRECT_REQUEST_METHOD" --> type methode laat niet toe
data te versturen of het datavolume is groter dan maximaal toegelaten.
<!--#include virtual="include/bottom.html" -->
----------nl--
Content-language: nb
Content-type: text/html; charset=UTF-8
Body:----------nb--
<!--#set var="CONTENT_LANGUAGE" value="nb"
--><!--#set var="TITLE" value="For stor enhet i forspørsel!"
--><!--#include virtual="include/top.html" -->
<!--#echo var="REDIRECT_REQUEST_METHOD" --> metoden tillater ikke
de sendte data eller så overskrider datamengenden
kapasitetsbegrensningen.
<!--#include virtual="include/bottom.html" -->
----------nb--
Content-language: pl
Content-type: text/html; charset=UTF-8
Body:----------pl--
<!--#set var="CONTENT_LANGUAGE" value="pl"
--><!--#set var="TITLE" value="&#379;&#261;dany obiekt zbyt du&#380;y!"
--><!--#include virtual="include/top.html" -->
Metoda <!--#echo var="REDIRECT_REQUEST_METHOD" -->
nie zezwala na typ przesy&#322;anych danych lub rozmiar danych przekracza
ustalony limit.
<!--#include virtual="include/bottom.html" -->
----------pl--
Content-language: pt-br
Content-type: text/html; charset=UTF-8
Body:-------pt-br--
<!--#set var="CONTENT_LANGUAGE" value="pt-br"
--><!--#set var="TITLE" value="Volume da dados muito grande!"
--><!--#include virtual="include/top.html" -->
O m&eacute;todo <!--#echo var="REDIRECT_REQUEST_METHOD" -->
n&atilde;o permite a transmiss&atilde;o dos dados,
ou o volume de dados excede a capacidade limite.
<!--#include virtual="include/bottom.html" -->
-------pt-br--
Content-language: pt
Content-type: text/html; charset=ISO-8859-1
Body:----------pt--
<!--#set var="TITLE" value="Volume de dados demasiado grande!"
--><!--#include virtual="include/top.html" -->
O m&eacute;todo <!--#echo var="REDIRECT_REQUEST_METHOD" -->
n&atilde;o permite todos os dados que foram transmitidos,
ou o volume de dados excede o limite da capacidade.
<!--#include virtual="include/bottom.html" -->
----------pt--
Content-language: ro
Content-type: text/html; charset=UTF-8
Body:----------ro--
<!--#set var="CONTENT_LANGUAGE" value="ro"
--><!--#set var="TITLE" value="Entitate ceruta prea mare!"
--><!--#include virtual="include/top.html" -->
Metoda <!--#echo var="REDIRECT_REQUEST_METHOD" -->
nu permite transmiterea datelor, sau volumul de date
depaseste limita capacitatii.
<!--#include virtual="include/bottom.html" -->
----------ro--
Content-language: sr
Content-type: text/html; charset=UTF-8
Body:----------sr--
<!--#set var="CONTENT_LANGUAGE" value="sr"
--><!--#set var="TITLE" value="Request entity too large!"
--><!--#include virtual="include/top.html" -->
<!--#echo var="REDIRECT_REQUEST_METHOD" -->
метод не дозвољава пренос ових података, или количина података
премашује ограничења могућности.
<!--#include virtual="include/bottom.html" -->
----------sr--
Content-language: sv
Content-type: text/html; charset=UTF-8
Body:----------sv--
<!--#set var="CONTENT_LANGUAGE" value="sv"
--><!--#set var="TITLE" value="F&ouml;r stor enhet vid f&ouml;rfr&aring;gan!"
--><!--#include virtual="include/top.html" -->
<!--#echo var="REDIRECT_REQUEST_METHOD" --> metoden till&aring;ter
inte den skickade datan eller s&aring; &ouml;verskrider datavolymen
kapacitetsniv&aring;n.
<!--#include virtual="include/bottom.html" -->
----------sv--
Content-language: tr
Content-type: text/html; charset=UTF-8
Body:----------tr--
<!--#set var="CONTENT_LANGUAGE" value="tr"
--><!--#set var="TITLE" value="İstenen öğe çok büyük!"
--><!--#include virtual="include/top.html" -->
<!--#echo var="REDIRECT_REQUEST_METHOD" --> yöntemi ya veri aktarımına
izin vermiyor ya da veri hacmi işlenemeyecek kadar büyük.
<!--#include virtual="include/bottom.html" -->
----------tr--

View file

@ -0,0 +1,234 @@
Content-language: cs
Content-type: text/html; charset=UTF-8
Body:----------cs--
<!--#set var="CONTENT_LANGUAGE" value="cs"
--><!--#set var="TITLE" value="Vypršel časový limit požadavku!"
--><!--#include virtual="include/top.html" -->
Server uzavřel síťové spojení, protože prohlížeč
nedokončil požadavek ve stanoveném čase.
<!--#include virtual="include/bottom.html" -->
----------cs--
Content-language: de
Content-type: text/html; charset=UTF-8
Body:----------de--
<!--#set var="CONTENT_LANGUAGE" value="de"
--><!--#set var="TITLE" value="Zeitlimit &uuml;berschritten!"
--><!--#include virtual="include/top.html" -->
Der Server konnte nicht mehr l&auml;nger auf die Beendigung
der Browseranfrage warten; die Netzwerkverbindung wurde
vom Server geschlossen.
<!--#include virtual="include/bottom.html" -->
----------de--
Content-language: en
Content-type: text/html; charset=UTF-8
Body:----------en--
<!--#set var="TITLE" value="Request time-out!"
--><!--#include virtual="include/top.html" -->
The server closed the network connection because the browser
didn't finish the request within the specified time.
<!--#include virtual="include/bottom.html" -->
----------en--
Content-language: es
Content-type: text/html
Body:----------es--
<!--#set var="TITLE" value="&iexcl;Tiempo de espera excedido!" -->
<!--#include virtual="include/top.html" -->
El servidor ha cerrado la conexi&oacute;n de red
debido a que el navegador no ha finalizado la solicitud
dentro del tiempo permitido.
<!--#include virtual="include/bottom.html" -->
----------es--
Content-language: fr
Content-type: text/html; charset=UTF-8
Body:----------fr--
<!--#set var="CONTENT_LANGUAGE" value="fr"
--><!--#set var="TITLE" value="Requ&ecirc;te trop longue !"
--><!--#include virtual="include/top.html" -->
Le serveur a ferm&eacute; la connection car le navigateur n'a pas
fini la requ&ecirc;te dans le temps sp&eacute;cifi&eacute;.
<!--#include virtual="include/bottom.html" -->
----------fr--
Content-language: ga
Content-type: text/html; charset=UTF-8
Body:----------ga--
<!--#set var="TITLE" value="Am don iarratais istigh!"
--><!--#include virtual="include/top.html" -->
D&uacute;n an freastala&iacute; an nasc l&iacute;onra,
mar n&iacute;or chr&iacute;ochnaidh an brabhs&aacute;la&iacute;
leis an iarratais, taobh istigh den am sonraithe.
<!--#include virtual="include/bottom.html" -->
----------ga--
Content-language: it
Content-type: text/html; charset=UTF-8
Body:----------it--
<!--#set var="CONTENT_LANGUAGE" value="it"
--><!--#set var="TITLE" value="Time-out della richiesta!"
--><!--#include virtual="include/top.html" -->
Il server ha chiuso la connessione in quanto &egrave; stato
superato il limite di tempo entro il quale il browser avrebbe
dovuto eseguire la richiesta.
<!--#include virtual="include/bottom.html" -->
----------it--
Content-language: ja
Content-type: text/html; charset=UTF-8
Body:----------ja--
<!--#set var="CONTENT_LANGUAGE" value="ja"
--><!--#set var="TITLE" value="Request time-out!"
--><!--#include virtual="include/top.html" -->
ブラウザが指定時間以内にリクエストを完了しなかったので、
サーバは接続を切りました。
<!--#include virtual="include/bottom.html" -->
----------ja--
Content-language: ko
Content-type: text/html; charset=UTF-8
Body:----------ko--
<!--#set var="CONTENT_LANGUAGE" value="ko"
--><!--#set var="TITLE" value="요청 시간 초과!"
--><!--#include virtual="include/top.html" -->
브라우저가 너무 오랫동안 요청을 끝내지 않아서 서버가 네트워크 연결을
강제로 끊었습니다.
<!--#include virtual="include/bottom.html" -->
----------ko--
Content-language: nl
Content-type: text/html; charset=UTF-8
Body:----------nl--
<!--#set var="CONTENT_LANGUAGE" value="nl"
--><!--#set var="TITLE" value="Tijdlimiet overschreden!"
--><!--#include virtual="include/top.html" -->
De server heeft de netwerkverbinding gesloten omdat de browser
de vraag niet heeft be&euml;indigd binnen een gestelde tijd.
<!--#include virtual="include/bottom.html" -->
----------nl--
Content-language: nb
Content-type: text/html; charset=UTF-8
Body:----------nb--
<!--#set var="CONTENT_LANGUAGE" value="nb"
--><!--#set var="TITLE" value="Tidsgrense overskredet!"
--><!--#include virtual="include/top.html" -->
Serveren stengte forbindelsen fordi nettleseren ikke avsluttet
forespørselen innen tidsgrensen.
<!--#include virtual="include/bottom.html" -->
----------nb--
Content-language: pl
Content-type: text/html; charset=UTF-8
Body:----------pl--
<!--#set var="CONTENT_LANGUAGE" value="pl"
--><!--#set var="TITLE" value="Przedawnione &#380;&#261;danie!"
--><!--#include virtual="include/top.html" -->
Serwer zamkn&#261;&#322; po&#322;&#261;czenie sieciowe, poniewa&#380; przegl&#261;darka
nie zako&#324;czy&#322;a operacji w przewidywanym czasie.
<!--#include virtual="include/bottom.html" -->
----------pl--
Content-language: pt-br
Content-type: text/html; charset=UTF-8
Body:-------pt-br--
<!--#set var="CONTENT_LANGUAGE" value="pt-br"
--><!--#set var="TITLE" value="Tempo excedido!"
--><!--#include virtual="include/top.html" -->
O servidor encerrou a conex&atilde;o porque o "browser"
n&atilde;o finalizou a requisi&ccedil;&atilde;o dentro
do tempo limite.
<!--#include virtual="include/bottom.html" -->
-------pt-br--
Content-language: pt
Content-type: text/html; charset=ISO-8859-1
Body:----------pt--
<!--#set var="TITLE" value="Tempo excedido!"
--><!--#include virtual="include/top.html" -->
O servidor interrompeu a liga&ccedil;&atilde;o de rede porque o
<i>browser</i> n&atilde;o terminou o pedido dentro do tempo limite.
<!--#include virtual="include/bottom.html" -->
----------pt--
Content-language: ro
Content-type: text/html; charset=UTF-8
Body:----------ro--
<!--#set var="CONTENT_LANGUAGE" value="ro"
--><!--#set var="TITLE" value="Time-out al cererii!"
--><!--#include virtual="include/top.html" -->
Serverul a terminat conexiunea cu browserul pentru ca acesta
nu a terminat cererea in limita timpului specificat.
<!--#include virtual="include/bottom.html" -->
----------ro--
Content-language: sr
Content-type: text/html; charset=UTF-8
Body:----------sr--
<!--#set var="CONTENT_LANGUAGE" value="sr"
--><!--#set var="TITLE" value="Захтеву је истекло време!"
--><!--#include virtual="include/top.html" -->
Сервер је прекинуо везу са мрежом јер читач
није завршио захтев за дозвољено време.
<!--#include virtual="include/bottom.html" -->
----------sr--
Content-language: sv
Content-type: text/html; charset=UTF-8
Body:----------sv--
<!--#set var="CONTENT_LANGUAGE" value="sv"
--><!--#set var="TITLE" value="Request time-out!"
--><!--#include virtual="include/top.html" -->
Servern st&auml;ngde f&ouml;rbindelsen d&auml;rf&ouml;r att
webbl&auml;saren inte avslutade f&ouml;rfr&aring;gan inom
f&ouml;rbest&auml;md tid.
<!--#include virtual="include/bottom.html" -->
----------sv--
Content-language: tr
Content-type: text/html; charset=UTF-8
Body:----------tr--
<!--#set var="CONTENT_LANGUAGE" value="tr"
--><!--#set var="TITLE" value="İstekte zaman aşımı!"
--><!--#include virtual="include/top.html" -->
Tarayıcı isteği zamanında tamamlayamadığından sunucu ağ bağlantısını kapattı.
<!--#include virtual="include/bottom.html" -->
----------tr--

View file

@ -0,0 +1,235 @@
Content-language: cs
Content-type: text/html; charset=UTF-8
Body:----------cs--
<!--#set var="CONTENT_LANGUAGE" value="cs"
--><!--#set var="TITLE" value="Požadované URI je příliš velké!"
--><!--#include virtual="include/top.html" -->
Délka požadovaného URL přesahuje kapacitní limit tohoto
serveru. Požadavek nemůže být zpracován.
<!--#include virtual="include/bottom.html" -->
----------cs--
Content-language: de
Content-type: text/html; charset=UTF-8
Body:----------de--
<!--#set var="CONTENT_LANGUAGE" value="de"
--><!--#set var="TITLE" value="&Uuml;bergebener URI zu gro&szlig;!"
--><!--#include virtual="include/top.html" -->
Der bei der Anfrage &uuml;bermittelte URI &uuml;berschreitet
die maximale L&auml;nge.
Die Anfrage kann nicht ausgef&uuml;hrt werden.
<!--#include virtual="include/bottom.html" -->
----------de--
Content-language: en
Content-type: text/html; charset=UTF-8
Body:----------en--
<!--#set var="TITLE" value="Submitted URI too large!"
--><!--#include virtual="include/top.html" -->
The length of the requested URL exceeds the capacity limit for
this server. The request cannot be processed.
<!--#include virtual="include/bottom.html" -->
----------en--
Content-language: es
Content-type: text/html
Body:----------es--
<!--#set var="TITLE" value="&iexcl;El URI enviado es demasiado largo!" -->
<!--#include virtual="include/top.html" -->
La longitud de la URL solicitada excede el l&iacute;mite de
capacidad para este servidor. No se puede procesar la solicitud.
<!--#include virtual="include/bottom.html" -->
----------es--
Content-language: fr
Content-type: text/html; charset=UTF-8
Body:----------fr--
<!--#set var="CONTENT_LANGUAGE" value="fr"
--><!--#set var="TITLE" value="L'URI demandee est trop longue!"
--><!--#include virtual="include/top.html" -->
La longueur de l'URL demand&eacute;e exc&egrave;de la limite de
capacit&egrave; pour ce serveur. Nous ne pouvons donner suite
&agrave; votre requ&ecirc;te.
<!--#include virtual="include/bottom.html" -->
----------fr--
Content-language: ga
Content-type: text/html; charset=UTF-8
Body:----------ga--
<!--#set var="TITLE" value="URI r&oacute;mh&oacute;r cuirthe isteach!"
--><!--#include virtual="include/top.html" -->
T&aacute; faid an URL iarraithe breis ar an teorainn cumas don
freastala&iacute; seo. N&iacute; f&eacute;idir an iarratas a
phr&oacute;ise&aacute;il.
<!--#include virtual="include/bottom.html" -->
----------ga--
Content-language: it
Content-type: text/html; charset=UTF-8
Body:----------it--
<!--#set var="CONTENT_LANGUAGE" value="it"
--><!--#set var="TITLE" value="URI troppo lungo!"
--><!--#include virtual="include/top.html" -->
La lunghezza dell'indirizzo (URL) trasmesso supera il
limite massimo imposto da questo server.
La richiesta non pu&ograve; essere soddisfatta.
<!--#include virtual="include/bottom.html" -->
----------it--
Content-language: ja
Content-type: text/html; charset=UTF-8
Body:----------ja--
<!--#set var="CONTENT_LANGUAGE" value="ja"
--><!--#set var="TITLE" value="Submitted URI too large!"
--><!--#include virtual="include/top.html" -->
リクエストの URL の長さが、扱える長さを超えています。
リクエストの処理を続けられません。
<!--#include virtual="include/bottom.html" -->
----------ja--
Content-language: ko
Content-type: text/html; charset=UTF-8
Body:----------ko--
<!--#set var="CONTENT_LANGUAGE" value="ko"
--><!--#set var="TITLE" value="너무 긴 URI!"
--><!--#include virtual="include/top.html" -->
요청한 URL이 너무 길어서 이 서버가 처리할 수 없습니다.
<!--#include virtual="include/bottom.html" -->
----------ko--
Content-language: nl
Content-type: text/html; charset=UTF-8
Body:----------nl--
<!--#set var="CONTENT_LANGUAGE" value="nl"
--><!--#set var="TITLE" value="Aangeboden URI te groot!"
--><!--#include virtual="include/top.html" -->
De lengte van de aangeboden URL overschreidt het maximum
voor deze server. De vraag kan niet verwerkt worden.
<!--#include virtual="include/bottom.html" -->
----------nl--
Content-language: nb
Content-type: text/html; charset=UTF-8
Body:----------nb--
<!--#set var="CONTENT_LANGUAGE" value="nb"
--><!--#set var="TITLE" value="Forespurt URI for stor!"
--><!--#include virtual="include/top.html" -->
Lengden på adressen som etterspurtes overskrider
kapasitetsgrensen for denne serveren. Forespørselen kan
ikke prosesseres.
<!--#include virtual="include/bottom.html" -->
----------nb--
Content-language: pl
Content-type: text/html; charset=UTF-8
Body:----------pl--
<!--#set var="CONTENT_LANGUAGE" value="pl"
--><!--#set var="TITLE" value="Zbyt d&#322;ugie URI!"
--><!--#include virtual="include/top.html" -->
D&#322;ugo&#347;&#263; &#380;&#261;danego URL-a przekracza limit ustanowiony dla tego
serwera. &#379;&#261;danie nie mo&#380;e zosta&#263; zrealizowane.
<!--#include virtual="include/bottom.html" -->
----------pl--
Content-language: pt-br
Content-type: text/html; charset=UTF-8
Body:-------pt-br--
<!--#set var="CONTENT_LANGUAGE" value="pt-br"
--><!--#set var="TITLE" value="URL excede limite!"
--><!--#include virtual="include/top.html" -->
O tamanho do endere&ccedil;o (URL) excede a capacidade limite
desse servidor. A requisi&ccedil;&atilde;o n&atilde;o pode ser
processada.
<!--#include virtual="include/bottom.html" -->
-------pt-br--
Content-language: pt
Content-type: text/html; charset=ISO-8859-1
Body:----------pt--
<!--#set var="TITLE" value="URI demasiado grande!"
--><!--#include virtual="include/top.html" -->
O tamanho do URL pedido excede o limite da capacidade deste
servidor. O pedido n&atilde;o pode ser processado.
<!--#include virtual="include/bottom.html" -->
----------pt--
Content-language: ro
Content-type: text/html; charset=UTF-8
Body:----------ro--
<!--#set var="CONTENT_LANGUAGE" value="ro"
--><!--#set var="TITLE" value="URL-ul submis este prea mare!"
--><!--#include virtual="include/top.html" -->
Lungimea URL-ului cerut depaseste limita capacitatii pentru
acest server. Cererea nu poate fi procesata.
<!--#include virtual="include/bottom.html" -->
----------ro--
Content-language: sr
Content-type: text/html; charset=UTF-8
Body:----------sr--
<!--#set var="CONTENT_LANGUAGE" value="sr"
--><!--#set var="TITLE" value="Послати УРИ је превелик!"
--><!--#include virtual="include/top.html" -->
Дужина захтеваног УРЛ-а премашује ограничења могућности
овог сервера. Захтев не може бити обрађен.
<!--#include virtual="include/bottom.html" -->
----------sr--
Content-language: sv
Content-type: text/html; charset=UTF-8
Body:----------sv--
<!--#set var="CONTENT_LANGUAGE" value="sv"
--><!--#set var="TITLE" value="Efterfr&aring;gad URI f&ouml;r stor!"
--><!--#include virtual="include/top.html" -->
L&auml;ngden p&aring; adressen som efterfr&aring;gas &ouml;verskrider
kapacitetsgr&auml;nsen f&ouml;r denna server. F&ouml;rfr&aring;gan kan
inte verkst&auml;llas.
<!--#include virtual="include/bottom.html" -->
----------sv--
Content-language: tr
Content-type: text/html; charset=UTF-8
Body:----------tr--
<!--#set var="CONTENT_LANGUAGE" value="tr"
--><!--#set var="TITLE" value="Gönderilen URI çok büyük!"
--><!--#include virtual="include/top.html" -->
Talep edilen URI'nin uzunluğu, sunucunun sınırlarını
aştığından istek yerine getirilemiyor.
<!--#include virtual="include/bottom.html" -->
----------tr--

View file

@ -0,0 +1,250 @@
Content-language: cs
Content-type: text/html; charset=UTF-8
Body:----------cs--
<!--#set var="CONTENT_LANGUAGE" value="cs"
--><!--#set var="TITLE" value="Služba není dostupná!"
--><!--#include virtual="include/top.html" -->
Server dočasně nemůže zpracovat Váš požadavek
kvůli údržbě nebo kapacitním problémům.
Zkuste to, prosím, později.
<!--#include virtual="include/bottom.html" -->
----------cs--
Content-language: de
Content-type: text/html; charset=UTF-8
Body:----------de--
<!--#set var="CONTENT_LANGUAGE" value="de"
--><!--#set var="TITLE" value="Zugriff nicht m&ouml;glich!"
--><!--#include virtual="include/top.html" -->
Der Server ist derzeit nicht in der Lage die Anfrage
zu bearbeiten. Entweder ist der Server derzeit &uuml;berlastet
oder wegen Wartungsarbeiten nicht verf&uuml;gbar.
Bitte versuchen Sie es sp&auml;ter wieder.
<!--#include virtual="include/bottom.html" -->
----------de--
Content-language: en
Content-type: text/html; charset=UTF-8
Body:----------en--
<!--#set var="TITLE" value="Service unavailable!"
--><!--#include virtual="include/top.html" -->
The server is temporarily unable to service your
request due to maintenance downtime or capacity
problems. Please try again later.
<!--#include virtual="include/bottom.html" -->
----------en--
Content-language: es
Content-type: text/html
Body:----------es--
<!--#set var="TITLE" value="&iexcl;Servicio no disponible!" -->
<!--#include virtual="include/top.html" -->
El servidor no puede procesar su solicitud en este momento
debido a tareas de mantenimiento o a problemas de capacidad.
Por favor, int&eacute;ntelo de nuevo m&aacute;s tarde.
<!--#include virtual="include/bottom.html" -->
----------es--
Content-language: fr
Content-type: text/html; charset=UTF-8
Body:----------fr--
<!--#set var="CONTENT_LANGUAGE" value="fr"
--><!--#set var="TITLE" value="Service inaccessible!"
--><!--#include virtual="include/top.html" -->
En raison de travaux de maintenance ou de probl&egrave;mes
de capacit&eacute; le serveur n'est pas en mesure de r&eacute;pondre
&agrave; votre requ&ecirc;te pour l'instant. Veuillez r&eacute;essayer
plus tard.
<!--#include virtual="include/bottom.html" -->
----------fr--
Content-language: ga
Content-type: text/html; charset=UTF-8
Body:----------ga--
<!--#set var="TITLE" value="Seirbh&iacute;s do&uacute;s&aacute;idte!"
--><!--#include virtual="include/top.html" -->
N&iacute;l an freastala&iacute; seo in ann do chuid
iarratais a l&iacute;onadh ag an am seo, toisc
c&oacute;th&aacute;bh&aacute;il n&oacute; fhaidhbeanna cumas.
D&eacute;an iarracht eile n&iacute;os d&eacute;ana&iacute;, le do thoil.
<!--#include virtual="include/bottom.html" -->
----------ga--
Content-language: it
Content-type: text/html; charset=UTF-8
Body:----------it--
<!--#set var="CONTENT_LANGUAGE" value="it"
--><!--#set var="TITLE" value="Servizio non disponibile!"
--><!--#include virtual="include/top.html" -->
Il server in questo momento non &egrave; in grado di
soddisfare la richiesta per motivi di manutenzione
o di sovraccarico del sistema.
Per favore, riprova pi&ugrave; tardi.
<!--#include virtual="include/bottom.html" -->
----------it--
Content-language: ja
Content-type: text/html; charset=UTF-8
Body:----------ja--
<!--#set var="CONTENT_LANGUAGE" value="ja"
--><!--#set var="TITLE" value="Service unavailable!"
--><!--#include virtual="include/top.html" -->
メンテナンスで停止中か、サーバの処理能力の問題のため、
現在リクエストに応じることができません。
後ほど再度お試し下さい。
<!--#include virtual="include/bottom.html" -->
----------ja--
Content-language: ko
Content-type: text/html; charset=UTF-8
Body:----------ko--
<!--#set var="CONTENT_LANGUAGE" value="ko"
--><!--#set var="TITLE" value="서비스 일시중지!"
--><!--#include virtual="include/top.html" -->
관리 작업이나 용량 문제로 서버가 잠시동안 요청을 처리할 수 없습니다.
나중에 다시 시도해주시기 바랍니다.
<!--#include virtual="include/bottom.html" -->
----------ko--
Content-language: nl
Content-type: text/html; charset=UTF-8
Body:----------nl--
<!--#set var="CONTENT_LANGUAGE" value="nl"
--><!--#set var="TITLE" value="Dienst niet beschikbaar!"
--><!--#include virtual="include/top.html" -->
De server kan tijdelijk uw vraag niet verwerken
door onderhoud of problemen met de capaciteit van de server.
Gelieve later nog eens opnieuw te proberen.
<!--#include virtual="include/bottom.html" -->
----------nl--
Content-language: nb
Content-type: text/html; charset=UTF-8
Body:----------nb--
<!--#set var="CONTENT_LANGUAGE" value="nb"
--><!--#set var="TITLE" value="Tjenesten er ikke tilgjengelig!"
--><!--#include virtual="include/top.html" -->
Serveren er midlertidig ikke i stand til å utføre din
forespørsel. Vennligst prøv igjen senere.
<!--#include virtual="include/bottom.html" -->
----------nb--
Content-language: pl
Content-type: text/html; charset=UTF-8
Body:----------pl--
<!--#set var="CONTENT_LANGUAGE" value="pl"
--><!--#set var="TITLE" value="Serwis niedost&#281;pny!"
--><!--#include virtual="include/top.html" -->
Serwer nie mo&#380;e zrealizowa&#263; twojego &#380;&#261;dania
ze wzgl&#281;du na konserwacj&#281; lub zbyt du&#380;e obci&#261;&#380;enie.
Prosimy spr&#243;bowa&#263; p&#243;&#378;niej.
<!--#include virtual="include/bottom.html" -->
----------pl--
Content-language: pt-br
Content-type: text/html; charset=UTF-8
Body:-------pt-br--
<!--#set var="CONTENT_LANGUAGE" value="pt-br"
--><!--#set var="TITLE" value="Servi&ccedil;o indispon&iacute;vel!"
--><!--#include virtual="include/top.html" -->
O servidor est&aacute; temporariamente fora de servi&ccedil;o
para manutan&ccedil;&atilde;o ou devido a problemas de capacidade.
Por favor tente acessar mais tarde.
<!--#include virtual="include/bottom.html" -->
-------pt-br--
Content-language: pt
Content-type: text/html; charset=ISO-8859-1
Body:----------pt--
<!--#set var="TITLE" value="Servi&ccedil;o indispon&iacute;vel!"
--><!--#include virtual="include/top.html" -->
O servidor est&aacute; tempor&aacute;riamente incapaz de servir
o seu pedido devido a uma interrup&ccedil;&atilde;o para
manuten&ccedil;&atilde;o ou problemas de capacidade. Por favor
tente de novo mais tarde.
<!--#include virtual="include/bottom.html" -->
----------pt--
Content-language: ro
Content-type: text/html; charset=UTF-8
Body:----------ro--
<!--#set var="CONTENT_LANGUAGE" value="ro"
--><!--#set var="TITLE" value="Serviciu indisponibil!"
--><!--#include virtual="include/top.html" -->
Serverul nu poate, temporar, sa raspunda cererii
dumneavoastra datorita intretinerii acestuia sau a
unor probleme de capacitate. Va rugam incercati mai tarziu.
<!--#include virtual="include/bottom.html" -->
----------ro--
Content-language: sr
Content-type: text/html; charset=UTF-8
Body:----------sr--
<!--#set var="CONTENT_LANGUAGE" value="sr"
--><!--#set var="TITLE" value="Услуга је недоступна!"
--><!--#include virtual="include/top.html" -->
Сервер тренутно није у могућности да услужи ваш
захтев пошто је затворен због одржавања или има недовољан
капацитет. Молимо покушајте поново касније.
<!--#include virtual="include/bottom.html" -->
----------sr--
Content-language: sv
Content-type: text/html; charset=UTF-8
Body:----------sv--
<!--#set var="CONTENT_LANGUAGE" value="sv"
--><!--#set var="TITLE" value="Tj&auml;nsten ej tillg&auml;nglig!"
--><!--#include virtual="include/top.html" -->
Servern &auml;r f&ouml;r tillf&auml;llet of&ouml;rm&ouml;gen att
utf&ouml;ra din f&ouml;rfr&aring;gan p&aring; grund av underh&aring;ll
eller kapacitetsbegr&auml;nsningar. V&auml;nligen f&ouml;rs&ouml;k
igen senare.
<!--#include virtual="include/bottom.html" -->
----------sv--
Content-language: tr
Content-type: text/html; charset=UTF-8
Body:----------tr--
<!--#set var="CONTENT_LANGUAGE" value="tr"
--><!--#set var="TITLE" value="Hizmet sunulamıyor!"
--><!--#include virtual="include/top.html" -->
Sunucu, bakım gerektiren çeşitli sorunlardan ötürü,
bir süreliğine taleplerinize yanıt veremiyor.
Lütfen daha sonra tekrar deneyin.
<!--#include virtual="include/bottom.html" -->
----------tr--

View file

@ -0,0 +1,370 @@
Content-language: cs
Content-type: text/html; charset=UTF-8
Body:----------cs--
<!--#set var="CONTENT_LANGUAGE" value="cs"
--><!--#set var="TITLE" value="Požadována autentizace!"
--><!--#include virtual="include/top.html" -->
Server nemohl ověřit, že jste autorizován(a) k&nbsp;přístupu
k&nbsp;URL "<!--#echo encoding="url" var="REDIRECT_URL" -->".
Buď jste dodal(a) neplatné pověření (např. chybné heslo) nebo Váš
prohlížeč neumí dodat požadované ověření.
<!--#include virtual="include/spacer.html" -->
V&nbsp;případě, že smíte požadovat tento dokument, zkontrolujte, prosím,
Vaši uživatelskou identifikaci a heslo a zkuste to znovu.
<!--#include virtual="include/bottom.html" -->
----------cs--
Content-language: de
Content-type: text/html; charset=UTF-8
Body:----------de--
<!--#set var="CONTENT_LANGUAGE" value="de"
--><!--#set var="TITLE" value="Authentisierung fehlgeschlagen!"
--><!--#include virtual="include/top.html" -->
Der Server konnte nicht verifizieren, ob Sie autorisiert sind,
auf den URL "<!--#echo encoding="url" var="REDIRECT_URL"-->" zuzugreifen.
Entweder wurden falsche Referenzen (z.B. ein falsches Passwort)
angegeben oder ihr Browser versteht nicht, wie die geforderten
Referenzen zu &uuml;bermitteln sind.
<!--#include virtual="include/spacer.html" -->
Sofern Sie f&uuml;r den Zugriff berechtigt sind, &uuml;berpr&uuml;fen
Sie bitte die eingegebene User-ID und das Passwort und versuchen Sie
es erneut.
<!--#include virtual="include/bottom.html" -->
----------de--
Content-language: en
Content-type: text/html; charset=UTF-8
Body:----------en--
<!--#set var="TITLE" value="Authentication required!"
--><!--#include virtual="include/top.html" -->
This server could not verify that you are authorized to access
the URL "<!--#echo encoding="url" var="REDIRECT_URL" -->".
You either supplied the wrong credentials (e.g., bad password), or your
browser doesn't understand how to supply the credentials required.
<!--#include virtual="include/spacer.html" -->
In case you are allowed to request the document, please
check your user-id and password and try again.
<!--#include virtual="include/bottom.html" -->
----------en--
Content-language: es
Content-type: text/html
Body:----------es--
<!--#set var="TITLE" value="&iexcl;Autentificaci&oacute;n requerida!" -->
<!--#include virtual="include/top.html" -->
El servidor no puede certificar que usted est&eacute; autorizado
para acceder a la URL "<!--#echo encoding="url" var="REDIRECT_URL" -->".
Ha podido suministrar informaci&oacute;n incorrecta (ej.
contrase&ntilde;a no v&aacute;lida) o el navegador no sabe
c&oacute;mo suministrar la informaci&oacute;n requerida.
<!--#include virtual="include/spacer.html" -->
En caso de que usted tenga permiso para acceder al documento,
por favor verifique su nombre de usuario y contrase&ntilde;a y
vu&eacute;lvalo a intentar.
<!--#include virtual="include/bottom.html" -->
----------es--
Content-language: fr
Content-type: text/html; charset=UTF-8
Body:----------fr--
<!--#set var="CONTENT_LANGUAGE" value="fr"
--><!--#set var="TITLE" value="Autorisation requise!"
--><!--#include virtual="include/top.html" -->
Ce server n'a pas &eacute;t&eacute; en mesure de v&eacute;rifier que
vous &ecirc;tes autoris&eacute; &agrave; acc&eacute;der &agrave; cette
URL "<!--#echo encoding="url" var="REDIRECT_URL" -->".
Vous avez ou bien fourni des coordonn&eacute;es erron&eacute;es
(p.ex. mot de passe inexact) ou bien votre navigateur ne parvient
pas &agrave; fournir les donn&eacute;es exactes.
<!--#include virtual="include/spacer.html" -->
Si vous &ecirc;tes autoris&eacute; &agrave; requ&eacute;rir le document,
veuillez v&eacute;rifier votre nom d'utilisateur et votre mot de passe
et r&eacute;essayer.
<!--#include virtual="include/bottom.html" -->
----------fr--
Content-language: ga
Content-type: text/html; charset=UTF-8
Body:----------ga--
<!--#set var="TITLE" value="Is g&aacute; f&iacute;ordheimhni&uacute;!"
--><!--#include virtual="include/top.html" -->
N&iacute;orbh fh&eacute;idir leis an freastala&iacute; a dheimhni&uacute;
go bhfuil an &uacute;dar&aacute;is agat rochtain a dheanamh ar an URL
"<!--#echo encoding="url" var="REDIRECT_URL" -->". Is f&eacute;idir go
sol&aacute;thair t&uacute; faisn&eacute;is m&iacute;cheart (m.s.,
pasfhocail m&iacute;cheart), n&oacute; nach dtuigeann do chuid
brabhs&aacute;la&iacute; conas an faisn&eacute;is is g&aacute; a
sol&aacute;thair i gceart.
<!--#include virtual="include/spacer.html" -->
M&aacute;s &eacute; gur ceart go mbh&eacute;adh cead agat iarratais a
dheanamh don doicim&eacute;id, deimhnigh go bhfuil do chuid ainm
&uacute;s&aacute;ideora agus pasfhocal i gceart, agus dean iarracht eile,
le do thoil.
<!--#include virtual="include/bottom.html" -->
----------ga--
Content-language: it
Content-type: text/html; charset=UTF-8
Body:----------it--
<!--#set var="CONTENT_LANGUAGE" value="it"
--><!--#set var="TITLE" value="Autorizzazione necessaria!"
--><!--#include virtual="include/top.html" -->
Questo server non pu&ograve; verificare l'autorizzazione
all'accesso a "<!--#echo encoding="url" var="REDIRECT_URL" -->".
Questo errore potrebbe essere causato da credenziali errate
(nome utente o password errata) oppure da un browser che non
riesce a comunicare il nome utente e la password in modo corretto.
<!--#include virtual="include/spacer.html" -->
Nel caso in cui ritieni di aver diritto ad accedere al documento,
controlla il nome utente e la password forniti e riprova.
<!--#include virtual="include/bottom.html" -->
----------it--
Content-language: ja
Content-type: text/html; charset=UTF-8
Body:----------ja--
<!--#set var="CONTENT_LANGUAGE" value="ja"
--><!--#set var="TITLE" value="Authentication required!"
--><!--#include virtual="include/top.html" -->
URL "<!--#echo encoding="url" var="REDIRECT_URL" -->"
へのアクセス権限があることを確認できませんでした。
間違った資格情報 (例えば、誤ったパスワード) を入力したか、
ブラウザが必要な資格情報を送信する方法を理解していないかです。
<!--#include virtual="include/spacer.html" -->
ドキュメントを要求できる筈である場合は、
ユーザ ID とパスワードを再確認して下さい。
<!--#include virtual="include/bottom.html" -->
----------ja--
Content-language: ko
Content-type: text/html; charset=UTF-8
Body:----------ko--
<!--#set var="CONTENT_LANGUAGE" value="ko"
--><!--#set var="TITLE" value="인증 필요!"
--><!--#include virtual="include/top.html" -->
이 서버가 "<!--#echo encoding="url" var="REDIRECT_URL" -->" URL을
접근할 수 있는 권한이 있는지 확인하지 못했습니다.
잘못된 인증 정보(가령, 잘못된 암호)를 보냈거나 아니면
사용하시는 브라우저가 필요한 인증 정보를 어떻게 보내는지 모르는 것입니다.
<!--#include virtual="include/spacer.html" -->
이 문서를 사용할 수 있도록 허가를 받았는데도 이런다면,
사용자 ID와 암호를 확인하시고 다시 시도하시기 바랍니다.
<!--#include virtual="include/bottom.html" -->
----------ko--
Content-language: nl
Content-type: text/html; charset=UTF-8
Body:----------nl--
<!--#set var="CONTENT_LANGUAGE" value="nl"
--><!--#set var="TITLE" value="Authenticatie nodig!"
--><!--#include virtual="include/top.html" -->
De server kon niet controleren of u gemachtigd bent om toegang te krijgen
tot de URL "<!--#echo encoding="url" var="REDIRECT_URL" -->".
U hebt zich onvoldoende geauthenticeerd ( vb : verkeerd paswoord ), of
uw browser is niet in staat de nodige authentificatiegegevens door te geven.
<!--#include virtual="include/spacer.html" -->
Indien u toch gemachtigd bent toegang te krijgen tot het document,
controleer uw gebruikersnaam en paswoord en probeer opnieuw.
<!--#include virtual="include/bottom.html" -->
----------nl--
Content-language: nb
Content-type: text/html; charset=UTF-8
Body:----------nb--
<!--#set var="CONTENT_LANGUAGE" value="nb"
--><!--#set var="TITLE" value="Autentisering kreves!"
--><!--#include virtual="include/top.html" -->
Serveren kunne ikke verifisere at du har tillatelse til å besøke
adressen "<!--#echo encoding="url" var="REDIRECT_URL" -->". Enten
oppga du feil opplysninger (f.eks. feil passord) eller så støtter
ikke din nettleser dette autentiseringsystemet.
<!--#include virtual="include/spacer.html" -->
Om du har tillatelse til å besøke siden, vennligst kontroler ditt
brukernavn og passord og forsøk igjen.
<!--#include virtual="include/bottom.html" -->
----------nb--
Content-language: pl
Content-type: text/html; charset=UTF-8
Body:----------pl--
<!--#set var="CONTENT_LANGUAGE" value="pl"
--><!--#set var="TITLE" value="Wymagana autoryzacja!"
--><!--#include virtual="include/top.html" -->
Serwer nie mo&#380;e zweryfikowa&#263;, &#380;e masz uprawnienia dost&#281;pu do
URL-a "<!--#echo encoding="url" var="REDIRECT_URL" -->".
Nie poda&#322;e&#347; prawid&#322;owych danych autoryzacyjnych (np. has&#322;a)
lub twoja przegl&#261;darka nie potrafi ich przes&#322;a&#263;.
<!--#include virtual="include/spacer.html" -->
Je&#347;li masz prawo dost&#281;pu do &#380;&#261;danego dokumentu, sprawd&#378;
podan&#261; nazw&#281; u&#380;ytkownika i has&#322;o.
<!--#include virtual="include/bottom.html" -->
----------pl--
Content-language: pt-br
Content-type: text/html; charset=UTF-8
Body:-------pt-br--
<!--#set var="CONTENT_LANGUAGE" value="pt-br"
--><!--#set var="TITLE" value="Autentica&ccedil;&atilde;o Requerida!"
--><!--#include virtual="include/top.html" -->
Este servidor n&atilde;o pode autorizar o seu acesso &agrave; URL
"<!--#echo encoding="url" var="REDIRECT_URL" -->".
Voc&ecirc; deve ter fornecido dados incorretos (ex. senha errada), ou o seu
"browser" n&atilde;o fornece as credenciais necess&aacute;rias.
<!--#include virtual="include/spacer.html" -->
No caso de voc&ecirc; realmente possuir permiss&atilde;o para este documento,
por favor checar seu login e sua senha e tentar novamente.
<!--#include virtual="include/bottom.html" -->
-------pt-br--
Content-language: pt
Content-type: text/html; charset=ISO-8859-1
Body:----------pt--
<!--#set var="TITLE" value="Autentica&ccedil;&atilde;o exigida!"
--><!--#include virtual="include/top.html" -->
Este servidor n&atilde;o conseguiu validar a sua autoridade para aceder
ao URL "<!--#echo encoding="url" var="REDIRECT_URL" -->".
Ou forneceu as credenciais erradas (e.g.: senha incorrecta)
ou o seu <i>browser</i> n&atilde;o sabe como fornecer as credenciais
necess&aacute;rias.
<!--#include virtual="include/spacer.html" -->
Caso lhe seja permitido aceder ao documento, por favor verifique o
seu nome de utilizador e senha e tente de novo.
<!--#include virtual="include/bottom.html" -->
----------pt--
Content-language: ro
Content-type: text/html; charset=UTF-8
Body:----------ro--
<!--#set var="CONTENT_LANGUAGE" value="ro"
--><!--#set var="TITLE" value="Autentificare necesara!"
--><!--#include virtual="include/top.html" -->
Acest server nu a putut verifica daca sunteti autorizat sa accesati
URL-ul "<!--#echo encoding="url" var="REDIRECT_URL" -->".
Ati furnizat parametrii de acreditare gresiti (ex: parola gresita), sau browserul
dumneavoastra nu poate furniza aceste detalii de acreditare.
<!--#include virtual="include/spacer.html" -->
In cazul in care nu va este permis sa cereti un document, va rugam
sa va verificati numele de utilizator si parola si sa incercati din nou.
<!--#include virtual="include/bottom.html" -->
----------ro--
Content-language: sr
Content-type: text/html; charset=UTF-8
Body:----------sr--
<!--#set var="CONTENT_LANGUAGE" value="sr"
--><!--#set var="TITLE" value="Обавезна аутентификација!"
--><!--#include virtual="include/top.html" -->
Овај сервер није могао да потврди да сте овлашћени да приступите
УРЛ-у "<!--#echo encoding="url" var="REDIRECT_URL" -->".
Могуће је или да сте навели погрешне личне податке (нпр. нетачну лозинку), или да
ваш читач не разуме како да пошаље захтеване личне податке.
<!--#include virtual="include/spacer.html" -->
Уколико вам је дозвољено да преузимате документ, молимо да
проверите своје корисничко име и лозинку и пробате поново.
<!--#include virtual="include/bottom.html" -->
----------sr--
Content-language: sv
Content-type: text/html; charset=UTF-8
Body:----------sv--
<!--#set var="CONTENT_LANGUAGE" value="sv"
--><!--#set var="TITLE" value="Autentisering kr&auml;vs!"
--><!--#include virtual="include/top.html" -->
Servern kunde inte verifiera att du har till&aring;telse att bes&ouml;ka
adressen "<!--#echo encoding="url" var="REDIRECT_URL" -->".
Antingen angav du felaktiga uppgifter (ex. fel l&ouml;senord) eller s&aring;
st&ouml;djer inte din webbl&auml;sare detta autentiseringss&auml;tt.
<!--#include virtual="include/spacer.html" -->
Om du har till&aring;telse att bes&ouml;ka sidan, v&auml;nligen kontrollera ditt
anv&auml;ndarnamn samt l&ouml;senord och f&ouml;rs&ouml;k igen.
<!--#include virtual="include/bottom.html" -->
----------sv--
Content-language: tr
Content-type: text/html; charset=UTF-8
Body:----------tr--
<!--#set var="CONTENT_LANGUAGE" value="tr"
--><!--#set var="TITLE" value="Kimlik doğrulama gerekli!"
--><!--#include virtual="include/top.html" -->
Sunucu "<!--#echo encoding="url" var="REDIRECT_URL" -->" adresine erişim
izninizi doğrulayamadı. Ya sağladığınız kanıtlar yanlış (yanlış parola gibi)
ya da tarayıcınız bu kanıtların nasıl sağlanacağını bilmiyor.
<!--#include virtual="include/spacer.html" -->
Eğer erişim izniniz olduğuna eminseniz, lütfen kullanıcı adınızı
ve parolanızı gözden geçirip yeniden deneyin.
<!--#include virtual="include/bottom.html" -->
----------tr--

View file

@ -0,0 +1,217 @@
Content-language: cs
Content-type: text/html; charset=UTF-8
Body:----------cs--
<!--#set var="CONTENT_LANGUAGE" value="cs"
--><!--#set var="TITLE" value="Nepodporovaný typ prostředku!"
--><!--#include virtual="include/top.html" -->
Server nepodporuje typ prostředku (media) přeneseného v&nbsp;požadavku.
<!--#include virtual="include/bottom.html" -->
----------cs--
Content-language: de
Content-type: text/html; charset=UTF-8
Body:----------de--
<!--#set var="CONTENT_LANGUAGE" value="de"
--><!--#set var="TITLE" value="Nicht unterst&uuml;tztes Format!"
--><!--#include virtual="include/top.html" -->
Das bei der Anfrage &uuml;bermittelte Format (Media Type)
wird vom Server nicht unterst&uuml;tzt.
<!--#include virtual="include/bottom.html" -->
----------de--
Content-language: en
Content-type: text/html; charset=UTF-8
Body:----------en--
<!--#set var="TITLE" value="Unsupported media type!"
--><!--#include virtual="include/top.html" -->
The server does not support the media type transmitted in the request.
<!--#include virtual="include/bottom.html" -->
----------en--
Content-language: es
Content-type: text/html
Body:----------es--
<!--#set var="TITLE" value="&iexcl;El tipo de medio no est&aacute; soportado!" -->
<!--#include virtual="include/top.html" -->
El servidor no soporta el tipo
de medio transmitido en la solicitud.
<!--#include virtual="include/bottom.html" -->
----------es--
Content-language: fr
Content-type: text/html; charset=UTF-8
Body:----------fr--
<!--#set var="CONTENT_LANGUAGE" value="fr"
--><!--#set var="TITLE" value="Type de m&eacute;dia invalide!"
--><!--#include virtual="include/top.html" -->
Le serveur ne supporte pas le type de m&eacute;dia utilis&eacute;
dans votre requ&ecirc;te.
<!--#include virtual="include/bottom.html"-->
----------fr--
Content-language: ga
Content-type: text/html; charset=UTF-8
Body:----------ga--
<!--#set var="TITLE" value="Cine&aacute;il me&aacute;n gan tacha&iacute;ocht!"
--><!--#include virtual="include/top.html" -->
N&iacute; tacha&iacute;onn an fhreastala&iacute; an cine&aacute;il
me&aacute;n a sheoladh san iarratais.
<!--#include virtual="include/bottom.html" -->
----------ga--
Content-language: it
Content-type: text/html; charset=UTF-8
Body:----------it--
<!--#set var="CONTENT_LANGUAGE" value="it"
--><!--#set var="TITLE" value="Tipo di dato non supportato!"
--><!--#include virtual="include/top.html" -->
Il server non &egrave; in grado di gestire il
tipo del formato dei dati trasmesso nella richiesta.
<!--#include virtual="include/bottom.html" -->
----------it--
Content-language: ja
Content-type: text/html; charset=UTF-8
Body:----------ja--
<!--#set var="CONTENT_LANGUAGE" value="ja"
--><!--#set var="TITLE" value="Unsupported media type!"
--><!--#include virtual="include/top.html" -->
リクエストで指定されたメディアタイプはサポートされていません。
<!--#include virtual="include/bottom.html" -->
----------ja--
Content-language: ko
Content-type: text/html; charset=UTF-8
Body:----------ko--
<!--#set var="CONTENT_LANGUAGE" value="ko"
--><!--#set var="TITLE" value="지원하지 않는 미디어 형식!"
--><!--#include virtual="include/top.html" -->
요청으로 보내온 미디어 형식을 이 서버가 지원하지 않습니다.
<!--#include virtual="include/bottom.html" -->
----------ko--
Content-language: nl
Content-type: text/html; charset=UTF-8
Body:----------nl--
<!--#set var="CONTENT_LANGUAGE" value="nl"
--><!--#set var="TITLE" value="Niet ondersteund formaat!"
--><!--#include virtual="include/top.html" -->
De server ondersteunt het gevraagde formaat ( media type ) niet.
<!--#include virtual="include/bottom.html" -->
----------nl--
Content-language: nb
Content-type: text/html; charset=UTF-8
Body:----------nb--
<!--#set var="CONTENT_LANGUAGE" value="nb"
--><!--#set var="TITLE" value="Mediatypen støttes ikke!"
--><!--#include virtual="include/top.html" -->
Serveren støtter ikke den mediatypen som ble forespurt.
<!--#include virtual="include/bottom.html" -->
----------nb--
Content-language: pl
Content-type: text/html; charset=UTF-8
Body:----------pl--
<!--#set var="CONTENT_LANGUAGE" value="pl"
--><!--#set var="TITLE" value="Nieobs&#322;ugiwany typ danych!"
--><!--#include virtual="include/top.html" -->
Serwer nie zna typu danych przes&#322;anych w &#380;&#261;daniu.
<!--#include virtual="include/bottom.html" -->
----------pl--
Content-language: pt-br
Content-type: text/html; charset=UTF-8
Body:-------pt-br--
<!--#set var="CONTENT_LANGUAGE" value="pt-br"
--><!--#set var="TITLE" value="Tipo de media n&atilde;o suportado!"
--><!--#include virtual="include/top.html" -->
O servidor n&atilde;o suporta o tipo de m&iacute;dia
transmitida nesta requisi&ccedil;&atilde;o.
<!--#include virtual="include/bottom.html" -->
-------pt-br--
Content-language: pt
Content-type: text/html; charset=ISO-8859-1
Body:----------pt--
<!--#set var="TITLE" value="Media n&atilde;o suportado!"
--><!--#include virtual="include/top.html" -->
O servidor n&atilde;o suporta o <i>media type</i> transmitido no pedido.
<!--#include virtual="include/bottom.html" -->
----------pt--
Content-language: ro
Content-type: text/html; charset=UTF-8
Body:----------ro--
<!--#set var="CONTENT_LANGUAGE" value="ro"
--><!--#set var="TITLE" value="Tip de date nesuportate!"
--><!--#include virtual="include/top.html" -->
Serverul nu suporta tipul de date trimise in cerere.
<!--#include virtual="include/bottom.html" -->
----------ro--
Content-language: sr
Content-type: text/html; charset=UTF-8
Body:----------sr--
<!--#set var="CONTENT_LANGUAGE" value="sr"
--><!--#set var="TITLE" value="Неподржана врста медија!"
--><!--#include virtual="include/top.html" -->
Сервер не подржава врсту медија пренесену у захтеву.
<!--#include virtual="include/bottom.html" -->
----------sr--
Content-language: sv
Content-type: text/html; charset=UTF-8
Body:----------sv--
<!--#set var="CONTENT_LANGUAGE" value="sv"
--><!--#set var="TITLE" value="Mediatypen st&ouml;ds ej!"
--><!--#include virtual="include/top.html" -->
Servern st&ouml;djer inte den mediatyp som skickats i f&ouml;rfr&aring;gan.
<!--#include virtual="include/bottom.html" -->
----------sv--
Content-language: tr
Content-type: text/html; charset=UTF-8
Body:----------tr--
<!--#set var="CONTENT_LANGUAGE" value="tr"
--><!--#set var="TITLE" value="Desteklenmeyen ortam türü!"
--><!--#include virtual="include/top.html" -->
Sunucu, istekte belirtilen ortam türünü desteklemiyor.
<!--#include virtual="include/bottom.html" -->
----------tr--

View file

@ -0,0 +1,242 @@
Content-language: cs
Content-type: text/html; charset=UTF-8
Body:----------cs--
<!--#set var="CONTENT_LANGUAGE" value="cs"
--><!--#set var="TITLE" value="Varianta má sama více variant!"
--><!--#include virtual="include/top.html" -->
Varianta požadované entity má sama více variant. Přístup není možný.
<!--#include virtual="include/bottom.html" -->
----------cs--
Content-language: de
Content-type: text/html; charset=UTF-8
Body:----------de--
<!--#set var="CONTENT_LANGUAGE" value="de"
--><!--#set var="TITLE" value="Variante ebenfalls ver&auml;nderlich!"
--><!--#include virtual="include/top.html" -->
Ein Zugriff auf das angeforderte Objekt bzw. einer
Variante dieses Objektes ist nicht m&ouml;glich, da es ebenfalls
ein variables Objekt darstellt.
<!--#include virtual="include/bottom.html" -->
----------de--
Content-language: en
Content-type: text/html; charset=UTF-8
Body:----------en--
<!--#set var="TITLE" value="Variant also varies!"
--><!--#include virtual="include/top.html" -->
A variant for the requested entity
is itself a negotiable resource.
Access not possible.
<!--#include virtual="include/bottom.html" -->
----------en--
Content-language: es
Content-type: text/html
Body:----------es--
<!--#set var="TITLE" value="La variante tambi&eacute;n varia!" -->
<!--#include virtual="include/top.html" -->
Una variante de la entidad solicitada es por si misma
un recurso negociable.
No es posible tener acceso a la entidad.
<!--#include virtual="include/bottom.html" -->
----------es--
Content-language: fr
Content-type: text/html; charset=UTF-8
Body:----------fr--
<!--#set var="CONTENT_LANGUAGE" value="fr"
--><!--#set var="TITLE" value="La variante varie elle-m&ecirc;me!"
--><!--#include virtual="include/top.html" -->
Une variante pour l'entit&eacute; demand&eacute;e
est elle-m&ecirc;me une ressource n&eacute;gociable.
L'acc&egrave;s est impossible.
<!--#include virtual="include/bottom.html" -->
----------fr--
Content-language: ga
Content-type: text/html; charset=UTF-8
Body:----------ga--
<!--#set var="TITLE" value="Athraitheach intr&aacute;chta!"
--><!--#include virtual="include/top.html" -->
Is &eacute; ceann de na athraitha&iacute;
don aon&aacute;n iarraithe acmhainn
intr&aacute;chta f&eacute;in.
Rochtain dodh&eacute;anta.
<!--#include virtual="include/bottom.html" -->
----------ga--
Content-language: it
Content-type: text/html; charset=UTF-8
Body:----------it--
<!--#set var="CONTENT_LANGUAGE" value="it"
--><!--#set var="TITLE" value="La versione variante varia essa stessa!"
--><!--#include virtual="include/top.html" -->
Non &egrave; possibile accedere all'entit&agrave;
richiesta perch&eacute; &egrave; essa stessa
una risorsa negoziabile.
<!--#include virtual="include/bottom.html" -->
----------it--
Content-language: ja
Content-type: text/html; charset=UTF-8
Body:----------ja--
<!--#set var="CONTENT_LANGUAGE" value="ja"
--><!--#set var="TITLE" value="Variant also varies!"
--><!--#include virtual="include/top.html" -->
リクエストされたものの variant
はそれ自体もまた、ネゴシエーション可能なリソースです。
アクセスできませんでした。
<!--#include virtual="include/bottom.html" -->
----------ja--
Content-language: ko
Content-type: text/html; charset=UTF-8
Body:----------ko--
<!--#set var="CONTENT_LANGUAGE" value="ko"
--><!--#set var="TITLE" value="형태를 결정할 수 없음!"
--><!--#include virtual="include/top.html" -->
요청한 객체의 형태 또한 여러 형태를 가지고 있어서
접근이 불가능합니다.
<!--#include virtual="include/bottom.html" -->
----------ko--
Content-language: nl
Content-type: text/html; charset=UTF-8
Body:----------nl--
<!--#set var="CONTENT_LANGUAGE" value="nl"
--><!--#set var="TITLE" value="Variant varieert ook!"
--><!--#include virtual="include/top.html" -->
Een variant van het gevraagde object
is op zich ook een te onderhandelen variant.
Toegang is niet mogelijk.
<!--#include virtual="include/bottom.html" -->
----------nl--
Content-language: nb
Content-type: text/html; charset=UTF-8
Body:----------nb--
<!--#set var="CONTENT_LANGUAGE" value="nb"
--><!--#set var="TITLE" value="Variant varierer også!"
--><!--#include virtual="include/top.html" -->
En variant av den forespurte enheten er i seg selv en forhandelbar
ressurs. Tilgang ikke mulig.
<!--#include virtual="include/bottom.html" -->
----------nb--
Content-language: pl
Content-type: text/html; charset=UTF-8
Body:----------pl--
<!--#set var="CONTENT_LANGUAGE" value="pl"
--><!--#set var="TITLE" value="Wariant jest wariantowy!"
--><!--#include virtual="include/top.html" -->
Wariant &#380;&#261;danego zasobu jest r&#243;wnie&#380; zasobem negocjowalnym.
Dost&#281;p jest niemo&#380;liwy.
<!--#include virtual="include/bottom.html" -->
----------pl--
Content-language: pt-br
Content-type: text/html; charset=UTF-8
Body:-------pt-br--
<!--#set var="CONTENT_LANGUAGE" value="pt-br"
--><!--#set var="TITLE" value="Variante auto-negoci&aacute;vel!"
--><!--#include virtual="include/top.html" -->
Uma variante da entidade de requisi&ccedil;&atilde;o
&eacute; por si mesma um recurso negoci&aacute;vel.
Acesso n&atilde;o &eacute; poss&iacute;vel.
<!--#include virtual="include/bottom.html" -->
-------pt-br--
Content-language: pt
Content-type: text/html; charset=ISO-8859-1
Body:----------pt--
<!--#set var="TITLE" value="Variante tamb&eacute;m varia!"
--><!--#include virtual="include/top.html" -->
A variante relativa &agrave; entidade pedida &eacute; ela mesma
um recurso negoci&aacute;vel. N&atilde;o &eacute; poss&iacute;vel
ter acesso.
<!--#include virtual="include/bottom.html" -->
----------pt--
Content-language: ro
Content-type: text/html; charset=UTF-8
Body:----------ro--
<!--#set var="CONTENT_LANGUAGE" value="ro"
--><!--#set var="TITLE" value="Varianta deasemenea variaza!"
--><!--#include virtual="include/top.html" -->
O varianta pentru entitatea ceruta
este ea insasi o resursa negociabila.
Accesul nu este posibil.
<!--#include virtual="include/bottom.html" -->
----------ro--
Content-language: sr
Content-type: text/html; charset=UTF-8
Body:----------sr--
<!--#set var="CONTENT_LANGUAGE" value="sr"
--><!--#set var="TITLE" value="Варијанта такође варира!"
--><!--#include virtual="include/top.html" -->
Варијанта захтеваног ентитета
је и сама ресурс који постоји у више варијанти.
Приступ није могућ.
<!--#include virtual="include/bottom.html" -->
----------sr--
Content-language: sv
Content-type: text/html; charset=UTF-8
Body:----------sv--
<!--#set var="CONTENT_LANGUAGE" value="sv"
--><!--#set var="TITLE" value="Variant also varies!"
--><!--#include virtual="include/top.html" -->
En variant av den f&ouml;rfr&aring;gade enheten &auml;r i
sig sj&auml;lv en giltig resurs. &Aring;tkomst &auml;r inte
m&ouml;jlig.
<!--#include virtual="include/bottom.html" -->
----------sv--
Content-language: tr
Content-type: text/html; charset=UTF-8
Body:----------tr--
<!--#set var="CONTENT_LANGUAGE" value="tr"
--><!--#set var="TITLE" value="Gösterim çeşitleri de çeşitli!"
--><!--#include virtual="include/top.html" -->
İstenen gösterim çeşidinin kendisi zaten kendi içinde uzlaşımlı.
Erişim mümkün değil.
<!--#include virtual="include/bottom.html" -->
----------tr--

View file

@ -0,0 +1,38 @@
Multi Language Custom Error Documents
-------------------------------------
The 'error' directory contains HTTP error messages in multiple languages.
If the preferred language of a client is available it is selected
automatically via the MultiViews feature. This feature is enabled
by default via the Options, Language and ErrorDocument directives.
You may configure the design and markup of the documents by modifying
the HTML files in the directory 'error/include'.
Supported Languages:
+-----------------------+------------------------------------------+
| Language | Contributed by |
+-----------------------+------------------------------------------+
| Brazilian (pt-br) | Ricardo Leite |
| Czech (cs) | Marcel Kolaja |
| Dutch (nl) | Peter Van Biesen |
| English (en) | Lars Eilebrecht |
| French (fr) | Cecile de Crecy |
| German (de) | Lars Eilebrecht |
| Italian (it) | Luigi Rosa |
| Japanese (ja) | TAKAHASHI Makoto |
| Korean (ko) | Jaeho Shin |
| Norwegian Bokmål (nb) | Tom Fredrik Klaussen |
| Polish (pl) | Tomasz Kepczynski |
| Romanian (ro) | Andrei Besleaga |
| Serbian (sr) | Nikola Smolenski |
| Spanish (es) | Karla Quintero |
| Swedish (sv) | Thomas Sjögren |
| Turkish (tr) | Emre Sokullu & Nilgün Belma Bugüner |
| Irish (ga) | Noirin Shirley |
+-----------------------+------------------------------------------+
(Please see http://httpd.apache.org/docs-project/ if you would
like to contribute the pages in an additional language.)

View file

@ -0,0 +1,127 @@
Content-language: cs
Content-type: text/html; charset=UTF-8
Body:----------cs--
Pokud si myslíte, že toto je chyba serveru, kontaktujte, prosím,
<a href="mailto:<!--#echo encoding="url" var="SERVER_ADMIN" -->">webmastera</a>.
----------cs--
Content-language: de
Content-type: text/html; charset=UTF-8
Body:----------de--
Sofern Sie dies f&uuml;r eine Fehlfunktion des Servers halten,
informieren Sie bitte den
<a href="mailto:<!--#echo encoding="url" var="SERVER_ADMIN" -->">Webmaster</a>
hier&uuml;ber.
----------de--
Content-language: en
Content-type: text/html; charset=UTF-8
Body:----------en--
If you think this is a server error, please contact
the <a href="mailto:<!--#echo encoding="url" var="SERVER_ADMIN" -->">webmaster</a>.
----------en--
Content-language: es
Content-type: text/html
Body:----------es--
Si usted cree que esto es un error del servidor, por favor comun&iacute;queselo al
<a href="mailto:<!--#echo encoding="none" var="SERVER_ADMIN" -->">administrador
del portal</a>.
----------es--
Content-language: fr
Content-type: text/html; charset=UTF-8
Body:----------fr--
Si vous pensez qu'il s'agit d'une erreur du serveur, veuillez contacter le
<a href="mailto:<!--#echo encoding="url" var="SERVER_ADMIN" -->">webmestre</a>.
----------fr--
Content-language: ga
Content-type: text/html; charset=UTF-8
Body:----------ga--
M&aacute; cheapann t&uacute; gur earr&aacute;id fhreastala&iacute; &iacute; seo,
t&eacute;igh i dteagmh&aacute;il leis an
<a href="mailto:<!--#echo encoding="url" var="SERVER_ADMIN" -->">
sti&uacute;rth&oacute;ir gr&eacute;as&aacute;in</a>, le do thoil.
----------ga--
Content-language: it
Content-type: text/html; charset=UTF-8
Body:----------it--
Se pensi che questo sia un errore del server, per favore contatta il
<a href="mailto:<!--#echo encoding="url" var="SERVER_ADMIN" -->">webmaster</a>.
----------it--
Content-language: ja
Content-type: text/html; charset=UTF-8
Body:----------ja--
サーバーの障害と思われる場合は、<a
href="mailto:<!--#echo encoding="none" var="SERVER_ADMIN" -->"
>ウェブ管理者</a>までご連絡ください。
----------ja--
Content-language: ko
Content-type: text/html; charset=UTF-8
Body:----------ko--
만약 이것이 서버 오류라고 생각되면,
<a href="mailto:<!--#echo encoding="none" var="SERVER_ADMIN" -->">웹 관리자</a>에게 연락하시기 바랍니다.
----------ko--
Content-language: nl
Content-type: text/html; charset=UTF-8
Body:----------nl--
Indien u van oordeel bent dat deze server in fout is, gelieve
de <a href="mailto:<!--#echo encoding="url" var="SERVER_ADMIN" -->">webmaster</a> te contacteren.
----------nl--
Content-language: nb
Content-type: text/html; charset=UTF-8
Body:----------nb--
Om du tror dette skyldes en serverfeil, venligst kontakt
<a href="mailto:<!--#echo encoding="url" var="SERVER_ADMIN" -->">webansvarlig</a>.
----------nb--
Content-language: pl
Content-type: text/html; charset=UTF-8
Body:----------pl--
Je&#347;li my&#347;lisz, &#380;e jest to b&#322;&#261;d tego serwera, skontaktuj si&#281; z
<a href="mailto:<!--#echo encoding="url" var="SERVER_ADMIN" -->">administratorem</a>.
----------pl--
Content-language: pt-br
Content-type: text/html; charset=UTF-8
Body:-------pt-br--
Se voc&ecirc; acredita ter encontrado um problema no servidor,
por favor entre em contato com o
<a href="mailto:<!--#echo encoding="url" var="SERVER_ADMIN" -->">webmaster</a>.
-------pt-br--
Content-language: ro
Content-type: text/html; charset=UTF-8
Body:----------ro--
Va rugam sa il contactati pe
<a href="mailto:<!--#echo encoding="url" var="SERVER_ADMIN" -->">webmaster</a>
in cazul in care credeti ca aceasta este o eroare a serverului.
----------ro--
Content-language: sr
Content-type: text/html; charset=UTF-8
Body:----------sr--
Ако мислите да је ово грешка сервера, молимо обавестите
<a href="mailto:<!--#echo encoding="url" var="SERVER_ADMIN" -->">вебмастера</a>.
----------sr--
Content-language: sv
Content-type: text/html; charset=UTF-8
Body:----------sv--
Om du tror att detta beror p&aring; ett serverfel, v&auml;nligen kontakta
<a href="mailto:<!--#echo encoding="url" var="SERVER_ADMIN" -->">webbansvarig</a>.
----------sv--
Content-language: tr
Content-type: text/html; charset=UTF-8
Body:----------tr--
Bunun bir sunucu hatas&#305; oldu&#287;unu dü&#351;ünüyorsan&#305;z, lütfen
<a href="mailto:<!--#echo encoding="url" var="SERVER_ADMIN" -->">site
yöneticisi</a> ile ileti&#351;ime geçin.
----------tr--

View file

@ -0,0 +1,12 @@
</p>
<p>
<!--#include virtual="../contact.html.var" -->
</p>
<h2>Error <!--#echo encoding="none" var="REDIRECT_STATUS" --></h2>
<address>
<a href="/"><!--#echo var="SERVER_NAME" --></a><br />
<span><!--#echo var="SERVER_SOFTWARE" --></span>
</address>
</body>
</html>

View file

@ -0,0 +1,2 @@
</p>
<p>

View file

@ -0,0 +1,21 @@
<!--#if expr="-z v('CONTENT_LANGUAGE')"
--><!--#set var="CONTENT_LANGUAGE" value="en"
--><!--#endif
--><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="<!--#echo var="CONTENT_LANGUAGE" -->" xml:lang="<!--#echo var="CONTENT_LANGUAGE" -->">
<head>
<title><!--#echo encoding="none" var="TITLE" --></title>
<link rev="made" href="mailto:<!--#echo encoding="url" var="SERVER_ADMIN" -->" />
<style type="text/css"><!--/*--><![CDATA[/*><!--*/
body { color: #000000; background-color: #FFFFFF; }
a:link { color: #0000CC; }
p, address {margin-left: 3em;}
span {font-size: smaller;}
/*]]>*/--></style>
</head>
<body>
<h1><!--#echo encoding="none" var="TITLE" --></h1>
<p>

View file

@ -8,22 +8,3 @@ SetEnvIf User-Agent "^BadBot$" GoAway=1
SetEnvIf User-Agent "Nutch" GoAway=1
SetEnvIf User-Agent "ApacheBench" GoAway=1
# Uncomment for SSL strong security
#<IfModule mod_ssl.c>
#SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
#SSLProtocol All -SSLv2 -SSLv3
#SSLHonorCipherOrder On
#SSLCompression off
#SSLSessionCache shmcb:/var/log/apache2/ssl_gcache_data(512000)
#SSLSessionCacheTimeout 600
## Stapling not activated by default. Need config.
##SSLUseStapling on
##SSLStaplingCache shmcb:${APACHE_RUN_DIR}/stapling-cache(150000)
#</IfModule>
#<FilesMatch ".(eot|ttf|otf|woff)">
# Header set Access-Control-Allow-Origin "*"
#</FilesMatch>
# you need disable EnableCapabilities to use data on NFS mounts
#EnableCapabilities off

View file

@ -3,65 +3,15 @@ Timeout 10
KeepAliveTimeout 2
MaxKeepAliveRequests 10
#MaxClients 250
<IfModule mpm_prefork_module>
MaxRequestWorkers 250
ServerLimit 250
StartServers 50
MinSpareServers 20
MaxSpareServers 30
MaxConnectionsPerChild 100
</IfModule>
<IfModule mpm_worker_module>
StartServers 3
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers 150
MaxConnectionsPerChild 100
</IfModule>
<IfModule mpm_itk_module>
LimitUIDRange 0 6000
LimitGIDRange 0 6000
</IfModule>
<IfModule ssl_module>
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!RC4
</IfModule>
<IfModule status_module>
ExtendedStatus On
<IfModule proxy_module>
ProxyStatus On
</IfModule>
</IfModule>
# Go away bad bots (define "bad bots" in zzz-evolinux-custom.conf)
<If "reqenv('GoAway') -eq 1">
Require all denied
</If>
<DirectoryMatch "/\.git">
# We don't want to let the client know a file exist on the server,
# so we return 404 "Not found" instead of 403 "Forbidden".
Redirect 404 "-"
</DirectoryMatch>
# File names starting with
<FilesMatch "^\.(git|env)">
Redirect 404 "-"
</FilesMatch>
# File names ending with
<FilesMatch "\.(inc|bak)$">
Redirect 404 "-"
</FilesMatch>
<LocationMatch "^/evolinux_fpm_status-.*">
Require all denied
</LocationMatch>
MaxRequestWorkers 250
ServerLimit 250
StartServers 50
MinSpareServers 20
MaxSpareServers 30
MaxRequestsPerChild 0
<Directory /home/>
AllowOverride None
Require all granted
# "Require not env XXX" is not supported
# Deny from env=GoAway
</Directory>

View file

@ -0,0 +1,35 @@
<IfModule mod_negotiation.c>
<IfModule mod_include.c>
<IfModule mod_alias.c>
Alias /error/ "/usr/local/share/apache2/error/"
<Directory "/usr/local/share/apache2/error">
Options IncludesNoExec
AddOutputFilter Includes html
AddHandler type-map var
Require all granted
LanguagePriority en fr de es cs it nl sv pt-br ro
ForceLanguagePriority Prefer Fallback
</Directory>
ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
ErrorDocument 410 /error/HTTP_GONE.html.var
ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
</IfModule>
</IfModule>
</IfModule>

View file

@ -0,0 +1,11 @@
# Strong security.
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
SSLCompression off
SSLSessionCache shmcb:/var/log/apache2/ssl_gcache_data(512000)
SSLSessionCacheTimeout 600
# Stapling not activated by default. Need config.
#SSLUseStapling on
#SSLStaplingCache shmcb:${APACHE_RUN_DIR}/stapling-cache(150000)

View file

@ -1,22 +0,0 @@
#!/bin/bash
set -e
DIR="/var/log/apache-status"
URL="http://127.0.0.1/server-status"
TS=$(date +%Y%m%d%H%M%S)
FILE="${DIR}/${TS}.html"
if [ ! -d "${DIR}" ]; then
mkdir -p "${DIR}"
chown root:adm "${DIR}"
chmod 750 "${DIR}"
fi
wget -q -U "save_apache_status" -O "${FILE}" "${URL}"
chmod 640 "${FILE}"
chown root:adm "${FILE}"
find "${DIR}" -type f -mtime +1 -delete
exit 0

View file

@ -1,15 +1,10 @@
---
- name: restart apache
ansible.builtin.service:
service:
name: apache2
state: restarted
- name: reload apache
ansible.builtin.service:
service:
name: apache2
state: reloaded
- name: restart munin-node
ansible.builtin.service:
name: munin-node
state: restarted

View file

@ -1,24 +1,17 @@
---
galaxy_info:
company: Evolix
author: Evolix
description: Installation and basic configuration of Apache
issue_tracker_url: https://gitea.evolix.org/evolix/ansible-roles/issues
issue_tracker_url: https://forge.evolix.org/projects/ansible-roles/issues
license: GPLv2
min_ansible_version: "2.2"
min_ansible_version: 2.2
platforms:
- name: Debian
versions:
- jessie
- stretch
- buster
galaxy_tags: []
# Be sure to remove the '[]' above if you add dependencies
# to this list.
- name: Debian
versions:
- jessie
dependencies: []
# List your role dependencies here, one per line.

View file

@ -1,56 +1,73 @@
---
- name: Init ipaddr_whitelist.conf file
ansible.builtin.copy:
src: ipaddr_whitelist.conf
dest: /etc/apache2/ipaddr_whitelist.conf
- name: Init private_ipaddr_whitelist.conf file
copy:
src: private_ipaddr_whitelist.conf
dest: /etc/apache2/private_ipaddr_whitelist.conf
owner: root
group: root
mode: "0640"
force: false
force: no
tags:
- apache
- apache
- name: Load IP whitelist task
ansible.builtin.import_tasks: ip_whitelist.yml
- name: add IP addresses to private IP whitelist
lineinfile:
dest: /etc/apache2/private_ipaddr_whitelist.conf
line: "Require ip {{ item }}"
state: present
with_items: "{{ apache_private_ipaddr_whitelist_present }}"
notify: reload apache
tags:
- apache
- name: remove IP addresses from private IP whitelist
lineinfile:
dest: /etc/apache2/private_ipaddr_whitelist.conf
line: "Require ip {{ item }}"
state: absent
with_items: "{{ apache_private_ipaddr_whitelist_absent }}"
notify: reload apache
tags:
- apache
- name: include private IP whitelist for server-status
ansible.builtin.lineinfile:
lineinfile:
dest: /etc/apache2/mods-available/status.conf
line: " include /etc/apache2/ipaddr_whitelist.conf"
line: " include /etc/apache2/private_ipaddr_whitelist.conf"
insertafter: 'SetHandler server-status'
state: present
tags:
- apache
- apache
- name: Copy private_htpasswd
ansible.builtin.copy:
copy:
src: private_htpasswd
dest: /etc/apache2/private_htpasswd
owner: root
group: root
mode: "0640"
force: false
force: no
notify: reload apache
tags:
- apache
- apache
- name: add user:pwd to private htpasswd
ansible.builtin.lineinfile:
lineinfile:
dest: /etc/apache2/private_htpasswd
line: "{{ item }}"
state: present
loop: "{{ apache_private_htpasswd_present }}"
with_items: "{{ apache_private_htpasswd_present }}"
notify: reload apache
tags:
- apache
- apache
- name: remove user:pwd from private htpasswd
ansible.builtin.lineinfile:
lineinfile:
dest: /etc/apache2/private_htpasswd
line: "{{ item }}"
state: absent
loop: "{{ apache_private_htpasswd_absent }}"
with_items: "{{ apache_private_htpasswd_absent }}"
notify: reload apache
tags:
- apache
- apache

View file

@ -1,24 +0,0 @@
---
- name: add IP addresses to private IP whitelist
ansible.builtin.lineinfile:
dest: /etc/apache2/ipaddr_whitelist.conf
line: "Require ip {{ item }}"
state: present
create: yes
loop: "{{ apache_ipaddr_whitelist_present }}"
notify: reload apache
tags:
- apache
- ips
- name: remove IP addresses from private IP whitelist
ansible.builtin.lineinfile:
dest: /etc/apache2/ipaddr_whitelist.conf
line: "Require ip {{ item }}"
state: absent
loop: "{{ apache_ipaddr_whitelist_absent }}"
notify: reload apache
tags:
- apache
- ips

View file

@ -1,19 +0,0 @@
---
- name: log2mail is installed
ansible.builtin.apt:
name: log2mail
state: present
tags:
- apache
- name: Add log2mail config for Apache segfaults
ansible.builtin.template:
src: log2mail-apache.j2
dest: "/etc/log2mail/config/apache"
owner: log2mail
group: adm
mode: "0644"
force: false
tags:
- apache

View file

@ -1,156 +1,193 @@
---
- name: packages are installed (Debian 9 or later)
ansible.builtin.apt:
name:
- apache2
- libapache2-mod-evasive
- apachetop
- libwww-perl
- name: Main packages are installed
apt:
name: '{{ item }}'
state: present
with_items:
- apache2
tags:
- apache
- packages
when: ansible_distribution_major_version is version('9', '>=')
- apache
- packages
- name: itk package is installed if required (Debian 9 or later)
ansible.builtin.apt:
name:
- libapache2-mpm-itk
- name: Install packages for Jessie
apt:
name: '{{ item }}'
state: present
with_items:
- apache2-mpm-prefork
tags:
- apache
- packages
when:
- ansible_distribution_major_version is version('9', '>=')
- apache_mpm == "itk"
- name: packages are installed (jessie)
ansible.builtin.apt:
name:
- apache2-mpm-itk
- libapache2-mod-evasive
- apachetop
- libwww-perl
state: present
tags:
- apache
- packages
- apache
- packages
when: ansible_distribution_release == "jessie"
- name: basic modules are enabled
community.general.apache2_module:
- name: manually disable mpm_event
command: a2dismod mpm_event
register: cmd_disable_event
changed_when: "'Module mpm_event already disabled' not in cmd_disable_event.stdout"
notify: restart apache
tags:
- apache
- name: manually enable mpm_prefork
command: a2enmod mpm_prefork
register: cmd_disable_prefork
changed_when: "'Module mpm_prefork already enabled' not in cmd_disable_prefork.stdout"
notify: restart apache
tags:
- apache
# With Ansible 2.2 the module check the config for conflicts
# With 2.3 it can be disabled.
# https://docs.ansible.com/ansible/apache2_module_module.html
# - name: mpm_event modules is disabled
# apache2_module:
# name: '{{ item }}'
# state: absent
# with_items:
# - mpm_event
# tags:
# - apache
- name: Additional packages are installed
apt:
name: '{{ item }}'
state: present
loop:
- rewrite
- expires
- headers
- ssl
- include
- negotiation
- alias
notify: reload apache
with_items:
- apg
- apachetop
- libwww-perl
tags:
- apache
- apache
- packages
- name: basic modules are enabled
community.general.apache2_module:
apache2_module:
name: '{{ item }}'
state: present
loop:
- cgi
notify: reload apache
when: apache_mpm == "prefork" or apache_mpm == "itk"
with_items:
- rewrite
- expires
- headers
- cgi
- ssl
- include
- negotiation
- alias
tags:
- apache
- apache
- name: Copy Apache defaults config file
ansible.builtin.copy:
copy:
src: evolinux-defaults.conf
dest: "/etc/apache2/conf-available/z-evolinux-defaults.conf"
owner: root
group: root
mode: "0640"
force: true
notify: reload apache
mode: "0644"
force: yes
tags:
- apache
- name: Copy Apache localized error pages config file
copy:
src: evolinux-localized-error-pages.conf
dest: "/etc/apache2/conf-available/z-evolinux-localized-error-pages.conf"
owner: root
group: root
mode: "0644"
force: yes
tags:
- apache
- name: Create directory which will contain apache error pages
file:
path: /usr/local/share/apache2/error
mode: u=rwX,g=rX,o=rX
owner: root
group: root
state: directory
tags:
- apache
- name: Copy apache error pages
copy:
src: error-pages/
dest: "/usr/local/share/apache2/error/"
directory_mode: u=rwX,g=rX,o=rX
mode: u=rw,g=r,o=r
owner: root
group: root
tags:
- apache
- name: Copy Apache custom config file
ansible.builtin.copy:
copy:
src: evolinux-custom.conf
dest: "/etc/apache2/conf-available/zzz-evolinux-custom.conf"
owner: root
group: root
mode: "0640"
force: false
notify: reload apache
mode: "0644"
force: no
tags:
- apache
- name: disable status.conf
ansible.builtin.file:
dest: /etc/apache2/mods-enabled/status.conf
state: absent
notify: reload apache
- name: Copy Apache SSL (strong security) config file
copy:
src: evolinux-ssl.conf
dest: "/etc/apache2/conf-available/evolinux-ssl.conf"
owner: root
group: root
mode: "0644"
force: no
tags:
- apache
- apache
- name: Ensure Apache config files are enabled
ansible.builtin.command:
cmd: "a2enconf {{ item }}"
command: "a2enconf {{ item }}"
register: command_result
changed_when: "'Enabling' in command_result.stderr"
loop:
- z-evolinux-defaults.conf
- zzz-evolinux-custom.conf
notify: reload apache
tags:
- apache
- ansible.builtin.include: auth.yml
with_items:
- z-evolinux-defaults.conf
- z-evolinux-localized-error-pages.conf
- zzz-evolinux-custom.conf
- evolinux-ssl.conf
tags:
- apache
- include: auth.yml
- name: default vhost is installed
ansible.builtin.template:
template:
src: evolinux-default.conf.j2
dest: /etc/apache2/sites-available/000-evolinux-default.conf
mode: "0640"
force: false
# force: yes
notify: reload apache
tags:
- apache
- apache
- name: default vhost is enabled
ansible.builtin.file:
file:
src: /etc/apache2/sites-available/000-evolinux-default.conf
dest: /etc/apache2/sites-enabled/000-default.conf
state: link
force: true
force: yes
notify: reload apache
when: apache_evolinux_default_enabled | bool
when: apache_evolinux_default_enabled
tags:
- apache
- ansible.builtin.include: server_status.yml
tags:
- apache
- apache
- name: is umask already present?
ansible.builtin.command:
cmd: "grep -E '^umask ' /etc/apache2/envvars"
command: "grep -E '^umask ' /etc/apache2/envvars"
failed_when: False
changed_when: False
register: envvar_grep_umask
check_mode: no
tags:
- apache
- apache
- name: Add a mark in envvars for umask
ansible.builtin.blockinfile:
blockinfile:
dest: /etc/apache2/envvars
marker: "## {mark} ANSIBLE MANAGED BLOCK"
block: |
@ -159,54 +196,33 @@
umask 007
when: envvar_grep_umask.rc != 0
tags:
- apache
- apache
- ansible.builtin.include_role:
name: evolix/remount-usr
- name: Stat /default index
stat:
path: /var/www/index.html
register: _default_index
check_mode: no
tags:
- apache
- apache
- name: /usr/share/scripts exists
ansible.builtin.file:
dest: /usr/share/scripts
mode: "0700"
owner: root
group: root
state: directory
tags:
- apache
- include: phpmyadmin.yml
when: _default_index.stat.exists
- name: "Install save_apache_status.sh"
ansible.builtin.copy:
src: save_apache_status.sh
dest: /usr/share/scripts/save_apache_status.sh
mode: "0755"
force: false
tags:
- apache
- name: "logrotate: {{ apache_logrotate_frequency }}"
ansible.builtin.replace:
dest: /etc/logrotate.d/apache2
regexp: "(daily|weekly|monthly)"
replace: "{{ apache_logrotate_frequency }}"
tags:
- apache
- name: "logrotate: rotate {{ apache_logrotate_rotate }}"
ansible.builtin.replace:
dest: /etc/logrotate.d/apache2
regexp: '^(\s+rotate) \d+$'
replace: '\1 {{ apache_logrotate_rotate }}'
tags:
- apache
- ansible.builtin.include: log2mail.yml
when: apache_log2mail_include
tags:
- apache
- ansible.builtin.include: munin.yml
when: apache_munin_include | bool
tags:
- apache
# - block:
# - name: generate random string for serverstatus suffix
# command: "apg -a 1 -M N -n 1"
# changed_when: False
# register: _random_serverstatus_suffix
#
# - name: overwrite apache_serverstatus_suffix
# set_fact:
# apache_serverstatus_suffix: "{{ _random_serverstatus_suffix.stdout }}"
# when: apache_serverstatus_suffix == ""
#
# - name: replace server-status suffix in default site index
# replace:
# dest: /var/www/index.html
# regexp: '__SERVERSTATUS_SUFFIX__'
# replace: "{{ apache_serverstatus_suffix }}"

View file

@ -1,54 +0,0 @@
---
- name: "Install munin-node and core plugins packages"
ansible.builtin.apt:
name:
- munin-node
- munin-plugins-core
state: present
tags:
- apache
- munin
- name: "Enable Munin plugins"
ansible.builtin.file:
src: "/usr/share/munin/plugins/{{ item }}"
dest: "/etc/munin/plugins/{{ item }}"
state: link
loop:
- apache_accesses
- apache_processes
- apache_volume
notify: restart munin-node
tags:
- apache
- munin
- name: "Install fcgi packages for Munin graphs"
ansible.builtin.apt:
name:
- libapache2-mod-fcgid
- libcgi-fast-perl
state: present
notify: reload apache
tags:
- apache
- munin
- name: "Enable libapache2-mod-fcgid"
ansible.builtin.command:
cmd: a2enmod fcgid
register: cmd_enable_fcgid
changed_when: "'Module fcgid already enabled' not in cmd_enable_fcgid.stdout"
notify: restart apache
tags:
- apache
- munin
- name: "Apache has access to /var/log/munin/"
ansible.builtin.file:
path: /var/log/munin/
group: www-data
tags:
- apache
- munin

View file

@ -0,0 +1,24 @@
---
- block:
- name: generate random string for phpmyadmin suffix
command: "apg -a 1 -M N -n 1"
changed_when: False
register: _random_phpmyadmin_suffix
- name: overwrite apache_phpmyadmin_suffix
set_fact:
apache_phpmyadmin_suffix: "{{ _random_phpmyadmin_suffix.stdout }}"
when: apache_phpmyadmin_suffix == ""
tags:
- apache
- phpmyadmin
- name: replace phpmyadmin suffix in default site index
replace:
dest: /var/www/index.html
regexp: '__PHPMYADMIN_SUFFIX__'
replace: "{{ apache_phpmyadmin_suffix }}"
tags:
- apache
- phpmyadmin

View file

@ -1,79 +0,0 @@
---
- name: server status dirname exists
ansible.builtin.file:
dest: "{{ apache_serverstatus_suffix_file | dirname }}"
mode: "0700"
owner: root
group: root
state: directory
- name: set apache serverstatus suffix if provided
ansible.builtin.copy:
dest: "{{ apache_serverstatus_suffix_file }}"
# The last character "\u000A" is a line feed (LF), it's better to keep it
content: "{{ apache_serverstatus_suffix }}\u000A"
force: true
when: apache_serverstatus_suffix | length > 0
- name: generate random string for server-status suffix
ansible.builtin.shell:
cmd: "apg -a 1 -M N -n 1 > {{ apache_serverstatus_suffix_file }}"
args:
creates: "{{ apache_serverstatus_suffix_file }}"
- name: read apache server status suffix
ansible.builtin.command:
cmd: "tail -n 1 {{ apache_serverstatus_suffix_file }}"
changed_when: False
check_mode: no
register: new_apache_serverstatus_suffix
- name: overwrite apache_serverstatus_suffix
ansible.builtin.set_fact:
apache_serverstatus_suffix: "{{ new_apache_serverstatus_suffix.stdout }}"
- ansible.builtin.debug:
var: apache_serverstatus_suffix
verbosity: 1
- name: replace server-status suffix in default site index
ansible.builtin.replace:
dest: /var/www/index.html
regexp: '__SERVERSTATUS_SUFFIX__'
replace: "{{ apache_serverstatus_suffix }}"
- name: add server-status suffix in default site index if missing
ansible.builtin.replace:
dest: /var/www/index.html
regexp: '"/server-status-?"'
replace: '"/server-status-{{ apache_serverstatus_suffix }}"'
- name: add server-status suffix in default VHost
ansible.builtin.replace:
dest: /etc/apache2/sites-available/000-evolinux-default.conf
regexp: '<Location /server-status-?>'
replace: '<Location /server-status-{{ apache_serverstatus_suffix }}>'
notify: reload apache
- name: Munin configuration has a section for apache
ansible.builtin.lineinfile:
dest: /etc/munin/plugin-conf.d/munin-node
line: "[apache_*]"
create: no
- name: apache-status URL is configured for Munin
ansible.builtin.lineinfile:
dest: /etc/munin/plugin-conf.d/munin-node
line: "env.url http://{{ apache_serverstatus_host }}/server-status-{{ apache_serverstatus_suffix }}?auto"
regexp: 'env.url http://[^\\/]+/server-status'
insertafter: "[apache_*]"
create: no
notify: restart munin-node
- name: add mailgraph URL in index.html
ansible.builtin.lineinfile:
dest: /var/www/index.html
state: present
line: ' <li><a href="/mailgraph">Stats Mail</a></li>'
insertbefore: "</ul>"

View file

@ -1,159 +1,75 @@
<VirtualHost *:80>
ServerName {{ ansible_fqdn }}
#ServerAlias {{ ansible_fqdn }}
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
RewriteEngine on
# Redirect to HTTPS, execpt for munin, because some plugins
# can't handle HTTPS! :(
RewriteCond %{REQUEST_URI} !^/server-status.*$ [NC] [OR]
RewriteCond %{REQUEST_URI} !^/munin_opcache.php$ [NC]
RewriteRule ^/(.*) https://{{ ansible_fqdn }}/$1 [L,R=permanent]
<Location /munin_opcache.php>
Require ip 127.0.0.1
</Location>
</VirtualHost>
<VirtualHost *:443>
ServerName {{ ansible_fqdn }}
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
SSLEngine on
SSLCertificateFile {{ apache_evolinux_default_ssl_cert }}
SSLCertificateKeyFile {{ apache_evolinux_default_ssl_key }}
# We override these 2 Directory directives setted in apache2.conf.
# We want no access except from allowed IP address.
<Directory />
Include /etc/apache2/ipaddr_whitelist.conf
Options -Indexes
Require all denied
Include /etc/apache2/private_ipaddr_whitelist.conf
</Directory>
<Directory /var/www/>
Options -Indexes
Require all denied
Include /etc/apache2/ipaddr_whitelist.conf
Include /etc/apache2/private_ipaddr_whitelist.conf
</Directory>
# Munin. We need to set Directory directive as Alias take precedence.
Alias /munin /var/cache/munin/www
<Directory /var/cache/munin/>
Options -Indexes
Require all denied
Include /etc/apache2/ipaddr_whitelist.conf
Include /etc/apache2/private_ipaddr_whitelist.conf
</Directory>
# munin-cgi-graph, used for zooming on graphs.
ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph
<Location /munin-cgi/munin-cgi-graph>
Options +ExecCGI
<Directory /usr/lib/munin/cgi/>
Options -Indexes
Require all denied
Include /etc/apache2/ipaddr_whitelist.conf
</Location>
Include /etc/apache2/private_ipaddr_whitelist.conf
</Directory>
# For CGI Scripts. We need to set Directory directive as ScriptAlias take precedence.
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory /usr/lib/cgi-bin>
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Require all denied
Include /etc/apache2/ipaddr_whitelist.conf
</Directory>
# Mailgraph configuration
Alias /mailgraph /usr/share/mailgraph
<Directory /usr/share/mailgraph>
DirectoryIndex mailgraph.cgi
Require all granted
Options +FollowSymLinks +ExecCGI
AddHandler cgi-script .cgi
Include /etc/apache2/private_ipaddr_whitelist.conf
</Directory>
CustomLog /var/log/apache2/access.log vhost_combined
ErrorLog /var/log/apache2/error.log
LogLevel warn
<IfModule mod_ssl.c>
RewriteEngine on
# Redirect to HTTPS, execpt for munin, because some plugins
# can't handle HTTPS! :(
RewriteCond %{REQUEST_URI} !^/.well-known.*$ [NC] [OR]
RewriteCond %{REQUEST_URI} !^/server-status.*$ [NC] [OR]
RewriteCond %{REQUEST_URI} !^/munin_opcache.php$ [NC]
RewriteRule ^/(.*) https://{{ ansible_fqdn }}/$1 [L,R=permanent]
</IfModule>
Alias /phpmyadmin-{{ apache_phpmyadmin_suffix }} /usr/share/phpmyadmin/
IncludeOptional /etc/apache2/conf-available/phpmyadmin*
<Location /munin_opcache.php>
Require local
</Location>
<IfModule mod_status.c>
<Location /server-status-{{ apache_serverstatus_suffix | mandatory }}>
SetHandler server-status
include /etc/apache2/ipaddr_whitelist.conf
Require local
</Location>
</IfModule>
<IfModule security2_module>
SecRuleEngine Off
</IfModule>
<Files ~ "\.(inc|bak)$">
Require all denied
</Files>
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName {{ ansible_fqdn }}
#ServerAlias {{ ansible_fqdn }}
DocumentRoot /var/www/
# We override these 2 Directory directives setted in apache2.conf.
# We want no access except from allowed IP address.
<Directory />
Include /etc/apache2/ipaddr_whitelist.conf
</Directory>
<Directory /var/www/>
Options -Indexes
Require all denied
Include /etc/apache2/ipaddr_whitelist.conf
</Directory>
SSLEngine on
SSLCertificateFile {{ apache_evolinux_default_ssl_cert }}
SSLCertificateKeyFile {{ apache_evolinux_default_ssl_key }}
# Munin. We need to set Directory directive as Alias take precedence.
Alias /munin /var/cache/munin/www
<Directory /var/cache/munin/>
Require all denied
Include /etc/apache2/ipaddr_whitelist.conf
</Directory>
<Directory /usr/lib/munin/cgi/>
Options -Indexes
Require all denied
Include /etc/apache2/ipaddr_whitelist.conf
</Directory>
# For CGI Scripts. We need to set Directory directive as ScriptAlias take precedence.
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory /usr/lib/cgi-bin>
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Require all denied
Include /etc/apache2/ipaddr_whitelist.conf
</Directory>
ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph
<Location /munin-cgi/munin-cgi-graph>
Options +ExecCGI
<IfModule mod_fcgid.c>
SetHandler fcgid-script
</IfModule>
Require all denied
Include /etc/apache2/ipaddr_whitelist.conf
</Location>
# Mailgraph configuration
Alias /mailgraph /usr/share/mailgraph
<Directory /usr/share/mailgraph>
DirectoryIndex mailgraph.cgi
Require all granted
Options +FollowSymLinks +ExecCGI
AddHandler cgi-script .cgi
</Directory>
# BEGIN phpMyAdmin section
# END phpMyAdmin section
CustomLog /var/log/apache2/access.log vhost_combined
ErrorLog /var/log/apache2/error.log
LogLevel warn
<IfModule mod_status.c>
<Location /server-status-{{ apache_serverstatus_suffix | mandatory }}>
SetHandler server-status
include /etc/apache2/ipaddr_whitelist.conf
Require local
</Location>
</IfModule>
<IfModule security2_module>
SecRuleEngine Off
</IfModule>
</VirtualHost>
</IfModule>

View file

@ -7,20 +7,15 @@ A few APT related operations, like easily install backports of change components
Tasks are extracted in several files, included in `tasks/main.yml` :
* `backports.yml` : add a sources list for backports ;
* `basics_components.yml` : replace components for the basic sources ;
* `hold_packages.yml` : install script to automatically hold packages.
* `basics_components.yml` : replace components for the basic sources.
## Available variables
* `apt_config` : customize apt configuration (default: `True`) ;
* `apt_install_basics` : change basic sources components (default: `True`) ;
* `apt_basics_components` : basic sources components (default: `main`) ;
* `apt_install_backports` : install backports sources (default: `False`) ;
* `apt_backports_components` : backports sources (default: `main`) ;
* `apt_install_evolix_public` : install Evolix public repositories (default: `True`) ;
* `apt_install_hold_packages` : install script to automatically hold packages (default: `True`).
* `apt_hold_packages`: list of packages that must have a "hold" mark (default: `[]`)
* `apt_unhold_packages`: list of packages that must not have a "hold" mark (default: `[]`)
* `apt_install_evolix_public` : install Evolix public repositories (default: `True`).
## Examples

View file

@ -1,32 +1,7 @@
---
apt_config: True
apt_evolinux_config: True
apt_hooks: True
apt_remove_aptitude: True
apt_upgrade: False
apt_install_basics: True
apt_basics_components: "main"
# With Debian 12+ and the deb822 format of source files
# backports are always installed but enabled according to `apt_install_backports`
apt_install_backports: False
apt_backports_components: "main"
apt_install_evolix_public: True
apt_install_extended_lts: False
apt_clean_gandi_sourceslist: False
apt_install_hold_packages: True
apt_hold_packages: []
apt_unhold_packages: []
apt_check_hold_cron_minute: "45"
apt_check_hold_cron_hour: "*/4"
apt_check_hold_cron_weekday: "*"
apt_check_hold_cron_day: "*"
apt_check_hold_cron_month: "*"
apt_keyring_dir: "{{ ansible_distribution_major_version is version('12', '<') | ternary('/etc/apt/trusted.gpg.d', '/etc/apt/keyrings') }}"

View file

@ -1,37 +0,0 @@
#!/bin/sh
is_held() {
package=$1
apt-mark showhold ${package} | grep --silent ${package}
}
is_installed() {
package=$1
dpkg -l "${package}" 2>/dev/null | grep -q -E '^(i|h)i'
}
config_file="/etc/evolinux/apt_hold_packages.cf"
return_code=0
if [ -f ${config_file} ]; then
packages="$(cat ${config_file})"
if [ -n "${packages}" ]; then
for package in ${packages}; do
if [ -n "${package}" ]; then
if is_installed ${package} && ! is_held ${package}; then
apt-mark hold ${package}
msg="Package \`${package}' has been marked \`hold'."
>&2 echo "${msg}"
wall_bin=$(command -v wall)
if [ -n "${wall_bin}" ]; then
"${wall_bin}" --timeout 5 "${msg}"
fi
return_code=1
fi
fi
done
fi
fi
exit ${return_code}

View file

@ -1,168 +0,0 @@
#!/usr/bin/env python3
##########
# This script takes a multi-lines input of "oneliner-style" APT sources definitions.
# It converts them into "deb822-style" sources.
# Each generated file will have only one stanza, possibly with multiple Types/Suites/Components
##########
import re
import sys
import os
import select
import apt
import apt_pkg
# Order matters !
destinations = {
"debian-security": "security.sources",
".*-backports": "backports.sources",
".debian.org": "system.sources",
"mirror.evolix.org": "system.sources",
"ftp.evolix.org": "system.sources",
"pub.evolix.net": "evolix_public_old.sources.bak",
"pub.evolix.org": "evolix_public.sources",
"artifacts.elastic.co": "elastic.sources",
"download.docker.com": "docker.sources",
"downloads.linux.hpe.com": "hp.sources",
"pkg.jenkins-ci.org": "jenkins.sources",
"packages.sury.org": "sury.sources",
"repo.mongodb.org": "mongodb.sources",
"apt.newrelic.com": "newrelic.sources",
"deb.nodesource.com": "nodesource.sources",
"dl.yarnpkg.com": "yarn.sources",
"apt.postgresql.org": "postgresql.sources",
"packages.microsoft.com/repos/vscode": "microsoft-vscode.sources",
"packages.microsoft.com/repos/ms-teams": "microsoft-teams.sources",
"updates.signal.org": "signal.sources",
"downloads.1password.com/linux/debian": "1password.sources",
"download.virtualbox.org": "virtualbox.sources"
}
sources_parts = apt_pkg.config.find_dir('Dir::Etc::sourceparts')
def split_options(raw):
table = str.maketrans({
"[": None,
"]": None
})
options = raw.translate(table).split(' ')
return options
def auto_destination(uri):
basename = uri
basename = re.sub('\[[^\]]+\]', '', basename)
basename = re.sub('\w+://', '', basename)
basename = '_'.join(re.sub('[^a-zA-Z0-9]', ' ', basename).split())
return '%s.sources' % basename
def destination(matches):
for search_str in destinations.keys():
search_pattern = re.compile(f'{search_str}(/|\s|$)')
if re.search(search_pattern, matches['uri']) or re.search(search_pattern, matches["suite"]):
return destinations[search_str]
# fallback if nothing matches
return auto_destination(matches['uri'])
def prepare_sources(lines):
sources = {}
pattern = re.compile('^(?: *(?P<type>deb|deb-src)) +(?P<options>\[.+\] ?)*(?P<uri>\w+:\/\/\S+) +(?P<suite>\S+)(?: +(?P<components>.*))?$')
for line in lines:
matches = re.match(pattern, line)
if matches is not None:
dest = destination(matches)
options = {}
if matches.group('options'):
for option in split_options(matches['options']):
if "=" in option:
key, value = option.split("=")
options[key] = value
### WARNING ###
# if there are multiple lines with different URIS for a given destination (eg. "system")
# each one will overwrite the previous one
# and the last evaluated will be what remains.
if dest in sources:
sources[dest]["Types"].add(matches["type"])
sources[dest]["URIs"] = matches["uri"]
sources[dest]["Suites"].add(matches["suite"])
sources[dest]["Components"].update(matches["components"].split(' '))
else:
source = {
"Types": {matches['type']},
"URIs": matches['uri'],
"Enabled": "yes",
}
if matches.group('suite'):
source["Suites"] = set(matches['suite'].split(' '))
if matches.group('components'):
source["Components"] = set(matches['components'].split(' '))
if "arch" in options:
if "Architectures" in source:
source["Architectures"].append(options["arch"])
else:
source["Architectures"] = {options["arch"]}
if "signed-by" in options:
if "Signed-by" in source:
source["Signed-by"].append(options["signed-by"])
else:
source["Signed-by"] = {options["signed-by"]}
if "lang" in options:
if "Languages" in source:
source["Languages"].append(options["lang"])
else:
source["Languages"] = {options["lang"]}
if "target" in options:
if "Targets" in source:
source["Targets"].append(options["target"])
else:
source["Targets"] = {options["target"]}
sources[dest] = source
return sources
def save_sources(sources, output_dir):
# print(output_dir)
# print(sources)
for dest, source in sources.items():
source_path = output_dir + dest
with open(source_path, 'w') as file:
for key, value in source.items():
if isinstance(value, str):
file.write("{}: {}\n".format(key, value))
else:
file.write("{}: {}\n".format(key, ' '.join(value)))
def main():
if select.select([sys.stdin, ], [], [], 0.0)[0]:
sources = prepare_sources(sys.stdin)
# elif len(sys.argv) > 1:
# sources = prepare_sources([sys.argv[1]])
else:
print("You must provide source lines to stdin", file=sys.stderr)
sys.exit(1)
output_dir = apt_pkg.config.find_dir('Dir::Etc::sourceparts')
save_sources(sources, output_dir)
if __name__ == "__main__":
main()
sys.exit(0)

View file

@ -1,55 +0,0 @@
#!/bin/sh
##########
# This script changes all "one-line" APT sources into "deb822" sources.
# It is responsible for searching and processing the files.
# The actual format migration is done by a python script.
##########
deb822_migrate_script=$(command -v deb822-migration.py)
if [ -z "${deb822_migrate_script}" ]; then
deb822_migrate_script="$(dirname "$0")/deb822-migration.py"
fi
if [ ! -x "${deb822_migrate_script}" ]; then
>&2 echo "ERROR: '${deb822_migrate_script}' not found or not executable"
exit 1
fi
sources_from_file() {
grep --extended-regexp "^\s*(deb|deb-src) " $1
}
rc=0
count=0
if [ -f /etc/apt/sources.list ]; then
sources_from_file /etc/apt/sources.list | ${deb822_migrate_script}
python_rc=$?
if [ ${python_rc} -eq 0 ]; then
mv /etc/apt/sources.list /etc/apt/sources.list.bak
echo "OK: /etc/apt/sources.list"
count=$(( count + 1 ))
else
>&2 echo "ERROR: failed migration for /etc/apt/sources.list"
rc=1
fi
fi
for file in $(find /etc/apt/sources.list.d -mindepth 1 -maxdepth 1 -type f -name '*.list'); do
sources_from_file "${file}" | ${deb822_migrate_script}
python_rc=$?
if [ ${python_rc} -eq 0 ]; then
mv "${file}" "${file}.bak"
echo "OK: ${file}"
count=$(( count + 1 ))
else
>&2 echo "ERROR: failed migration for ${file}"
rc=1
fi
done
echo "${count} file(s) migrated"
exit ${rc}

View file

@ -0,0 +1,3 @@
Package: *
Pin: release a=jessie-backports
Pin-Priority: 50

View file

@ -1,32 +0,0 @@
#!/bin/sh
# Move apt repository key from /etc/apt/trusted.gpg.d/ to /etc/apt/keyrings/ and add "signed-by" tag in source list
#
# Example: move-apt-keyrings.sh http://repo.mongodb.org/apt/debian mongodb-server-[0-9\\.]+.asc
repository_pattern=$1
key=$2
found_files=$(grep --files-with-matches --recursive --extended-regexp "${repository_pattern}" "/etc/apt/sources.list.d/*.list")
old_key_file="/etc/apt/trusted.gpg.d/${key}"
new_key_file="/etc/apt/keyrings/${key}"
for file in ${found_files}; do
if ! grep --quiet "signed-by" "${file}"; then
signed_by="signed-by=${new_key_file}"
if grep --quiet "deb(-src)? \[" "${file}"; then
sed -i "s@deb\(-src\)\? \[\([^]]\+\)\]@deb\1 [\2 ${signed_by}]@" "${file}"
else
sed -i "s@deb\(-src\)\? @deb\1 [${signed_by}] @" "${file}"
fi
fi
done
if [ -f "${old_key_file}" ] && [ ! -f "${new_key_file}" ]; then
mv "${old_key_file}" "${new_key_file}"
fi
if [ -f "${new_key_file}" ]; then
chmod 644 "${new_key_file}"
chown root: "${new_key_file}"
fi

View file

@ -1,87 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
oA9QflpnDubMnCve
=ZCml
-----END PGP PUBLIC KEY BLOCK-----

Binary file not shown.

View file

@ -1,920 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: SKS 1.1.6
Comment: Hostname: keyserver.ubuntu.com
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
BWcdiQ==
=iUyJ
-----END PGP PUBLIC KEY BLOCK-----

Binary file not shown.

View file

@ -0,0 +1,3 @@
Package: *
Pin: release a=stretch-backports
Pin-Priority: 50

4
apt/handlers/main.yml Normal file
View file

@ -0,0 +1,4 @@
---
- name: apt update
apt:
update_cache: yes

View file

@ -1,23 +1,17 @@
galaxy_info:
company: Evolix
author: Evolix
description: Add repositories to APT sources list.
issue_tracker_url: https://gitea.evolix.org/evolix/ansible-roles/issues
issue_tracker_url: https://forge.evolix.org/projects/ansible-roles/issues
license: GPLv2
min_ansible_version: "2.2"
min_ansible_version: 2.2
platforms:
- name: Debian
versions:
- jessie
- stretch
- buster
galaxy_tags: []
# Be sure to remove the '[]' above if you add dependencies
# to this list.
- name: Debian
versions:
- jessie
dependencies: []
# List your role dependencies here, one per line.

View file

@ -1,18 +0,0 @@
---
- name: Backports deb822 sources list is installed
ansible.builtin.template:
src: '{{ ansible_distribution_release }}_backports.sources.j2'
dest: /etc/apt/sources.list.d/backports.sources
force: true
mode: "0640"
register: apt_backports_sources
tags:
- apt
- name: Apt update
ansible.builtin.apt:
update_cache: yes
when: apt_backports_sources is changed
tags:
- apt

View file

@ -1,35 +0,0 @@
---
- name: No backports config in default sources.list
ansible.builtin.lineinfile:
dest: /etc/apt/sources.list
regexp: "backports"
state: absent
tags:
- apt
- name: Backports sources list is installed
ansible.builtin.template:
src: '{{ ansible_distribution_release }}_backports.list.j2'
dest: /etc/apt/sources.list.d/backports.list
force: true
mode: "0640"
register: apt_backports_list
tags:
- apt
- name: Archived backport are accepted (jessie)
ansible.builtin.lineinfile:
dest: '/etc/apt/apt.conf.d/99no-check-valid-until'
line: 'Acquire::Check-Valid-Until no;'
create: yes
state: present
tags:
- apt
when: ansible_distribution_release == "jessie"
- name: Apt update
ansible.builtin.apt:
update_cache: yes
tags:
- apt
when: apt_backports_list is changed

View file

@ -1,13 +1,33 @@
---
- name: No backports config in default sources.list
lineinfile:
dest: /etc/apt/sources.list
regexp: "backports"
state: absent
tags:
- apt
# Backward compatibility task file
- name: Backports sources list is installed
template:
src: '{{ ansible_distribution_release }}_backports.list.j2'
dest: /etc/apt/sources.list.d/backports.list
force: yes
mode: "0640"
notify: apt update
tags:
- apt
- name: Install backports repositories (Debian <12)
ansible.builtin.import_tasks: backports.oneline.yml
when:
- ansible_distribution_major_version is version('12', '<')
- name: Backports configuration
copy:
src: '{{ ansible_distribution_release }}_backports_preferences'
dest: /etc/apt/preferences.d/0-backports-defaults
force: yes
mode: "0640"
notify: apt update
tags:
- apt
- name: Install backports repositories (Debian >=12)
ansible.builtin.import_tasks: backports.deb822.yml
when:
- ansible_distribution_major_version is version('12', '>=')
- name: Intermediate flush of handlers
meta: flush_handlers
tags:
- apt

View file

@ -1,45 +0,0 @@
---
- name: Change basics repositories
ansible.builtin.template:
src: "{{ ansible_distribution_release }}_basics.sources.j2"
dest: /etc/apt/sources.list.d/system.sources
mode: "0644"
force: true
register: apt_basic_sources
tags:
- apt
- name: Change security repositories
ansible.builtin.template:
src: "{{ ansible_distribution_release }}_security.sources.j2"
dest: /etc/apt/sources.list.d/security.sources
mode: "0644"
force: true
register: apt_security_sources
tags:
- apt
- name: Find one-line APT sources
ansible.builtin.find:
paths: /etc/apt
patterns: '*.list'
register: list_files
- name: Disable one-line-formatted sources
ansible.builtin.command:
cmd: "mv --verbose {{ item.path }} {{ item.path }}.bak"
environment:
LC_ALL: C
loop: "{{ list_files.files }}"
register: rename_cmd
changed_when: "'renamed' in rename_cmd.stdout"
tags:
- apt
- name: Apt update
ansible.builtin.apt:
update_cache: yes
tags:
- apt
when: apt_basic_list is changed or apt_security_sources is changed

View file

@ -1,18 +0,0 @@
---
- name: Change basics repositories
ansible.builtin.template:
src: "{{ ansible_distribution_release }}_basics.list.j2"
dest: /etc/apt/sources.list
mode: "0644"
force: true
register: apt_basic_list
tags:
- apt
- name: Apt update
ansible.builtin.apt:
update_cache: yes
tags:
- apt
when: apt_basic_list is changed

View file

@ -1,13 +1,16 @@
---
# Backward compatibility task file
- name: Change basics repositories
template:
src: "{{ ansible_distribution_release }}_basics.list.j2"
dest: /etc/apt/sources.list
mode: "0644"
force: yes
notify: apt update
tags:
- apt
- name: Install basics repositories (Debian <12)
ansible.builtin.import_tasks: basics.oneline.yml
when:
- ansible_distribution_major_version is version('12', '<')
- name: Install basics repositories (Debian >=12)
ansible.builtin.import_tasks: basics.deb822.yml
when:
- ansible_distribution_major_version is version('12', '>=')
- name: Intermediate flush of handlers
meta: flush_handlers
tags:
- apt

View file

@ -1,41 +0,0 @@
---
- name: Evolinux config for APT
ansible.builtin.lineinfile:
dest: /etc/apt/apt.conf.d/z-evolinux.conf
line: "{{ item.line }}"
regexp: "{{ item.regexp }}"
create: yes
state: present
mode: "0640"
loop:
- { line: "APT::Install-Recommends \"false\";", regexp: 'APT::Install-Recommends' }
- { line: "APT::Install-Suggests \"false\";", regexp: 'APT::Install-Suggests' }
- { line: "APT::Periodic::Enable \"0\";", regexp: 'APT::Periodic::Enable' }
tags:
- apt
when: apt_evolinux_config | bool
- name: DPkg invoke hooks
ansible.builtin.lineinfile:
dest: /etc/apt/apt.conf.d/z-evolinux.conf
line: "{{ item }}"
create: yes
state: present
mode: "0640"
loop:
- "DPkg::Pre-Invoke { \"df /tmp | grep -q /tmp && mount -oremount,exec /tmp || true\"; };"
- "DPkg::Pre-Invoke { \"df /usr | grep -q /usr && mount -oremount,rw /usr || true\"; };"
- "DPkg::Post-Invoke { \"df /tmp | grep -q /tmp && mount -oremount /tmp || true\"; };"
- "DPkg::Post-Invoke { \"df /usr | grep -q /usr && mount -oremount /usr || true\"; };"
tags:
- apt
when: apt_hooks | bool
- name: Remove Aptitude
ansible.builtin.apt:
name: aptitude
state: absent
tags:
- apt
when: apt_remove_aptitude | bool

View file

@ -1,59 +0,0 @@
---
- name: Look for legacy apt keyring
ansible.builtin.stat:
path: /etc/apt/trusted.gpg
register: _trusted_gpg_keyring
tags:
- apt
- name: Evolix embedded GPG key is absent
ansible.builtin.apt_key:
id: "B8612B5D"
keyring: /etc/apt/trusted.gpg
state: absent
tags:
- apt
when: _trusted_gpg_keyring.stat.exists
- name: "Ensure {{ apt_keyring_dir }} directory exists"
file:
path: "{{ apt_keyring_dir }}"
state: directory
mode: "755"
owner: root
group: root
- name: Set Evolix GPG key format to ASC
set_fact:
apt_evolix_public_key: "{{ apt_keyring_dir }}/pub_evolix.asc"
tags:
- apt
- name: Add Evolix GPG key
ansible.builtin.copy:
src: pub_evolix.asc
dest: "{{ apt_evolix_public_key }}"
force: true
mode: "0644"
owner: root
group: root
tags:
- apt
- name: Evolix public list is installed
ansible.builtin.template:
src: evolix_public.sources.j2
dest: /etc/apt/sources.list.d/evolix_public.sources
force: true
mode: "0640"
register: apt_evolix_public
tags:
- apt
- name: Apt update
ansible.builtin.apt:
update_cache: yes
tags:
- apt
when: apt_evolix_public is changed

View file

@ -1,69 +0,0 @@
---
- name: Look for legacy apt keyring
ansible.builtin.stat:
path: /etc/apt/trusted.gpg
register: _trusted_gpg_keyring
tags:
- apt
- name: Evolix embedded GPG key is absent
ansible.builtin.apt_key:
id: "B8612B5D"
keyring: /etc/apt/trusted.gpg
state: absent
tags:
- apt
when: _trusted_gpg_keyring.stat.exists
- name: "Ensure {{ apt_keyring_dir }} directory exists"
file:
path: "{{ apt_keyring_dir }}"
state: directory
mode: "755"
owner: root
group: root
- name: Set Evolix GPG key format to GPG (Debian < 9)
set_fact:
apt_evolix_public_key: "pub_evolix.gpg"
when:
- ansible_distribution_major_version is version('9', '<')
tags:
- apt
- name: Set Evolix GPG key format to ASC (Debian >= 9)
set_fact:
apt_evolix_public_key: "pub_evolix.asc"
when:
- ansible_distribution_major_version is version('9', '>=')
tags:
- apt
- name: Add Evolix GPG key
ansible.builtin.copy:
src: "{{ apt_evolix_public_key }}"
dest: "{{ apt_keyring_dir }}/{{ apt_evolix_public_key }}"
force: true
mode: "0644"
owner: root
group: root
tags:
- apt
- name: Evolix public list is installed
ansible.builtin.template:
src: evolix_public.list.j2
dest: /etc/apt/sources.list.d/evolix_public.list
force: true
mode: "0640"
register: apt_evolix_public
tags:
- apt
- name: Apt update
ansible.builtin.apt:
update_cache: yes
tags:
- apt
when: apt_evolix_public is changed

View file

@ -1,13 +1,29 @@
---
# Backward compatibility task file
# - name: Fail if distribution is not supported
# fail:
# msg: "Error: Evolix public repository is not compatble with 'Debian Stretch' yet."
# when: ansible_distribution_release == "stretch"
# tags:
# - apt
- name: Install Evolix Public repositories (Debian <12)
ansible.builtin.import_tasks: evolix_public.oneline.yml
when:
- ansible_distribution_major_version is version('12', '<')
- name: Install Evolix Public repositories (Debian >=12)
ansible.builtin.import_tasks: evolix_public.deb822.yml
when:
- ansible_distribution_major_version is version('12', '>=')
- name: Add Evolix GPG key
apt_key:
keyserver: "hkp://keyserver.ubuntu.com:80"
id: 44975278B8612B5D
- name: Evolix public list is installed
template:
src: evolix_public.list.j2
dest: /etc/apt/sources.list.d/evolix_public.list
force: yes
mode: "0640"
notify: apt update
tags:
- apt
- name: Intermediate flush of handlers
meta: flush_handlers
tags:
- apt

View file

@ -1,37 +0,0 @@
---
- name: "Ensure {{ apt_keyring_dir }} directory exists"
file:
path: "{{ apt_keyring_dir }}"
state: directory
mode: "755"
owner: root
group: root
- name: Add Evolix GPG key
ansible.builtin.copy:
src: "freexian-archive-extended-lts.gpg"
dest: "{{ apt_keyring_dir }}/freexian-archive-extended-lts.gpg"
force: true
mode: "0644"
owner: root
group: root
tags:
- apt
- name: ELTS list is installed
ansible.builtin.template:
src: "{{ ansible_distribution_release }}_extended-lts.list.j2"
dest: /etc/apt/sources.list.d/extended-lts.list
force: true
mode: "0640"
register: apt_extended_lts
tags:
- apt
- name: Apt update
ansible.builtin.apt:
update_cache: yes
tags:
- apt
when: apt_extended_lts is changed

View file

@ -1,103 +0,0 @@
---
- ansible.builtin.include_role:
name: evolix/remount-usr
- name: "hold packages (apt)"
ansible.builtin.shell:
cmd: "set -o pipefail && (dpkg -l {{ item }} 2>/dev/null | grep -q -E '^(i|h)i') && ((apt-mark showhold | grep --quiet {{ item }}) || apt-mark hold {{ item }})"
executable: /bin/bash
check_mode: no
register: apt_mark
changed_when: "item + ' set on hold.' in apt_mark.stdout"
failed_when:
- apt_mark.rc != 0
- apt_mark.stdout | length > 0
loop: "{{ apt_hold_packages }}"
tags:
- apt
- name: "/etc/evolinux is present"
ansible.builtin.file:
dest: /etc/evolinux
mode: "0700"
state: directory
tags:
- apt
- name: "hold packages (config)"
ansible.builtin.lineinfile:
dest: /etc/evolinux/apt_hold_packages.cf
line: "{{ item }}"
create: True
state: present
loop: "{{ apt_hold_packages }}"
tags:
- apt
- name: "unhold packages (apt)"
ansible.builtin.shell:
cmd: "set -o pipefail && (dpkg -l {{ item }} 2>/dev/null | grep -q -E '^(i|h)i') && ((apt-mark showhold | grep --quiet {{ item }}) && apt-mark unhold {{ item }})"
executable: /bin/bash
check_mode: no
register: apt_mark
changed_when: "'Canceled hold on' + item in apt_mark.stdout"
failed_when: apt_mark.rc != 0 and not apt_mark.stdout = ''
loop: "{{ apt_unhold_packages }}"
tags:
- apt
- name: "unhold packages (config)"
ansible.builtin.lineinfile:
dest: /etc/evolinux/apt_hold_packages.cf
line: "{{ item }}"
create: True
state: absent
loop: "{{ apt_unhold_packages }}"
tags:
- apt
- name: /usr/share/scripts exists
ansible.builtin.file:
dest: /usr/share/scripts
mode: "0700"
owner: root
group: root
state: directory
tags:
- apt
- name: Check scripts is installed
ansible.builtin.copy:
src: check_held_packages.sh
dest: /usr/share/scripts/check_held_packages.sh
force: true
mode: "0755"
tags:
- apt
- name: Check if Cron is installed
ansible.builtin.shell:
cmd: "dpkg --list 'cron' 2>/dev/null | grep -q -E '^(i|h)i'"
register: is_cron
changed_when: False
failed_when: False
check_mode: no
tags:
- apt
- name: Check for held packages (script)
ansible.builtin.cron:
cron_file: apt-hold-packages
name: check_held_packages
job: "/usr/share/scripts/check_held_packages.sh"
user: root
minute: "{{ apt_check_hold_cron_minute }}"
hour: "{{ apt_check_hold_cron_hour }}"
weekday: "{{ apt_check_hold_cron_weekday }}"
day: "{{ apt_check_hold_cron_day }}"
month: "{{ apt_check_hold_cron_month }}"
state: "present"
tags:
- apt
when: is_cron.rc == 0

View file

@ -1,137 +1,31 @@
---
- name: "Compatibility check"
ansible.builtin.assert:
that:
- ansible_distribution == "Debian"
- ansible_distribution_major_version is version('8', '>=')
msg: Only compatible with Debian >= 8
tags:
- apt
- name: "apt-transport-https is installed for https repositories (before Buster)"
ansible.builtin.apt:
name:
- apt-transport-https
tags:
- apt
when: ansible_distribution_major_version is version('10', '<')
- name: "certificates are installed for https repositories"
ansible.builtin.apt:
name:
- ca-certificates
tags:
- apt
- name: Custom configuration
ansible.builtin.import_tasks: config.yml
when: apt_config | bool
tags:
- apt
- name: Install basics repositories (Debian <12)
ansible.builtin.import_tasks: basics.oneline.yml
tags:
- apt
- name: Fail if distribution is not supported
fail:
msg: "Error: '{{ ansible_os_family }} {{ ansible_distribution_release }}' is not a supported distribution."
when:
- apt_install_basics | bool
- ansible_distribution_major_version is version('12', '<')
- name: Install basics repositories (Debian >=12)
ansible.builtin.import_tasks: basics.deb822.yml
- ansible_distribution_release != "jessie"
- ansible_distribution_release != "stretch"
tags:
- apt
when:
- apt_install_basics | bool
- ansible_distribution_major_version is version('12', '>=')
- apt
- name: Install backports repositories (Debian <12)
ansible.builtin.import_tasks: backports.oneline.yml
- name: Install basics repositories
include: basics.yml
when: apt_install_basics
tags:
- apt
when:
- apt_install_backports | bool
- ansible_distribution_major_version is version('12', '<')
- apt
# With Debian 12+ and the deb822 format of source files
# backports are always installed but enabled according to `apt_install_backports`
- name: Install backports repositories (Debian >=12)
ansible.builtin.import_tasks: backports.deb822.yml
- name: Install APT Backports repository
include: backports.yml
when: apt_install_backports
tags:
- apt
when:
- ansible_distribution_major_version is version('12', '>=')
- apt
- debug:
var: apt_install_evolix_public
- name: Install Evolix Public repositories (Debian <12)
ansible.builtin.import_tasks: evolix_public.oneline.yml
- name: Install Evolix Public APT repository
include: evolix_public.yml
when: apt_install_evolix_public
tags:
- apt
when:
- apt_install_evolix_public | bool
- ansible_distribution_major_version is version('12', '<')
- name: Install Evolix Public repositories (Debian >=12)
ansible.builtin.import_tasks: evolix_public.deb822.yml
tags:
- apt
when:
- apt_install_evolix_public | bool
- ansible_distribution_major_version is version('12', '>=')
- name: Install Extended-LTS repositories (Debian < 10)
ansible.builtin.import_tasks: extended-lts.oneline.yml
tags:
- apt
when:
- apt_install_extended_lts | bool
- ansible_distribution_major_version is version('10', '<')
- name: Clean GANDI sources
ansible.builtin.file:
path: '{{ item }}'
state: absent
loop:
- /etc/apt/sources.list.d/debian-security.list
- /etc/apt/sources.list.d/debian-jessie.list
- /etc/apt/sources.list.d/debian-stretch.list
- /etc/apt/sources.list.d/debian-buster.list
- /etc/apt/sources.list.d/debian-bullseye.list
- /etc/apt/sources.list.d/debian-update.list
tags:
- apt
when: apt_clean_gandi_sourceslist | bool
- name: "Disable NonFreeFirmware warning for VM on Debian 12+"
ansible.builtin.lineinfile:
path: /etc/apt/apt.conf.d/no-bookworm-firmware.conf
create: yes
line: "APT::Get::Update::SourceListWarnings::NonFreeFirmware \"false\";"
tags:
- apt
when:
- ansible_distribution_major_version is version('12', '>=')
- ansible_virtualization_role == "guest"
- name: Install check for packages marked hold
ansible.builtin.import_tasks: hold_packages.yml
when: apt_install_hold_packages | bool
tags:
- apt
- name: Updating APT cache
ansible.builtin.apt:
update_cache: yes
changed_when: False
tags:
- apt
- name: Upgrading system
ansible.builtin.apt:
upgrade: dist
when: apt_upgrade | bool
tags:
- apt
- apt

View file

@ -1,62 +0,0 @@
---
- ansible.builtin.include_role:
name: evolix/remount-usr
- name: /usr/share/scripts exists
ansible.builtin.file:
dest: /usr/share/scripts
mode: "0700"
owner: root
group: root
state: directory
tags:
- apt
- name: Migration scripts are installed
ansible.builtin.copy:
src: "{{ item }}"
dest: "/usr/share/scripts/{{ item }}"
force: true
mode: "0755"
loop:
- deb822-migration.py
- deb822-migration.sh
tags:
- apt
- name: Exec migration script
ansible.builtin.command:
cmd: /usr/share/scripts/deb822-migration.sh
ignore_errors: yes
tags:
- apt
- name: Is system.sources present?
ansible.builtin.stat:
path: /etc/apt/sources.list.d/system.sources
register: _system_sources
- name: Add signed-by when relevant for bookworm
ansible.builtin.lineinfile:
dest: /etc/apt/sources.list.d/system.sources
line: "Signed-by: /usr/share/keyrings/debian-archive-keyring.gpg"
insertafter: "Suites: bookworm bookworm-updates"
state: present
tags:
- apt
when: _system_sources.stat.exists or not ansible_check_mode
- name: Is security.sources present?
ansible.builtin.stat:
path: /etc/apt/sources.list.d/security.sources
register: _security_sources
- name: Add signed-by when relevant for bookworm-security
ansible.builtin.lineinfile:
dest: /etc/apt/sources.list.d/security.sources
line: "Signed-by: /usr/share/keyrings/debian-archive-keyring.gpg"
insertafter: "Suites: bookworm-security"
state: present
tags:
- apt
when: _security_sources.stat.exists or not ansible_check_mode

Some files were not shown because too many files have changed in this diff Show more