Obsolete
This commit is contained in:
parent
20a347cf49
commit
b015311eab
29 changed files with 1 additions and 5193 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -1,2 +0,0 @@
|
|||
.idea
|
||||
*.py[oc]
|
||||
6
.idea/vcs.xml
generated
6
.idea/vcs.xml
generated
|
|
@ -1,6 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
37
Dockerfile
37
Dockerfile
|
|
@ -1,37 +0,0 @@
|
|||
FROM baseruntime/baseruntime:latest
|
||||
|
||||
ENV POSTFIX_SMTP_PORT=10025 NAME=postfix ARCH=x86_64
|
||||
LABEL MAINTAINER "Petr Hracek" <phracek@redhat.com>
|
||||
LABEL summary="Postfix is a Mail Transport Agent (MTA)." \
|
||||
name="$FGC/$NAME" \
|
||||
version="0" \
|
||||
release="1.$DISTTAG" \
|
||||
architecture="$ARCH" \
|
||||
com.redhat.component="$NAME" \
|
||||
usage="docker run -it -e MYHOSTNAME=localhost -p 25:10025 -v $(pwd)/tmp/postfix:/var/spool/postfix -v $(pwd)/tmp/mail:/var/spool/mail postfix" \
|
||||
help="Runs postfix, which listens on port 25. No dependencies. See Help File belowe for more detailes." \
|
||||
description="Postfix is mail transfer agent that routes and delivers mail." \
|
||||
io.k8s.description="Postfix is mail transfer agent that routes and delivers mail." \
|
||||
io.k8s.diplay-name="Postfix 3.1" \
|
||||
io.openshift.expose-services="10025:postfix" \
|
||||
io.openshift.tags="postfix,mail,mta"
|
||||
|
||||
COPY repos/* /etc/yum.repos.d/
|
||||
RUN microdnf --nodocs --enablerepo fedora install findutils && \
|
||||
microdnf --nodocs --enablerepo postfix install postfix && \
|
||||
microdnf -y clean all
|
||||
|
||||
ADD files /files
|
||||
ADD README.md /
|
||||
|
||||
RUN /files/postfix_config.sh
|
||||
|
||||
EXPOSE 10025
|
||||
|
||||
# Postfix UID based from Fedora
|
||||
# USER 89
|
||||
|
||||
VOLUME ['/var/spool/postfix']
|
||||
VOLUME ['/var/spool/mail']
|
||||
|
||||
CMD ["/files/start.sh"]
|
||||
17
Makefile
17
Makefile
|
|
@ -1,17 +0,0 @@
|
|||
.PHONY: build run default
|
||||
|
||||
IMAGE_NAME = postfix
|
||||
MODULEMDURL=file://postfix.yaml
|
||||
|
||||
all: run
|
||||
default: run
|
||||
|
||||
build:
|
||||
docker build --tag=$(IMAGE_NAME) .
|
||||
|
||||
run: build
|
||||
docker run -p 25:10025 -e MYHOSTNAME=localhost $(IMAGE_NAME)
|
||||
|
||||
test: build
|
||||
cd tests; MODULE=docker MODULEMD=$(MODULEMDURL) URL="docker=$(IMAGE_NAME)" make all
|
||||
cd tests; MODULE=rpm MODULEMD=$(MODULEMDURL) URL="docker=$(IMAGE_NAME)" make all
|
||||
149
README.md
149
README.md
|
|
@ -1,149 +0,0 @@
|
|||
# postfix
|
||||
|
||||
[**Package DB** (owner)](https://admin.fedoraproject.org/pkgdb/package/modules/postfix/) |
|
||||
[**F26 modulemd** (source)](http://pkgs.fedoraproject.org/cgit/modules/postfix.git/tree/postfix.yaml?h=f26) |
|
||||
[**PDC** (result)](https://pdc.fedoraproject.org/rest_api/v1/unreleasedvariants/?active=True&variant_name=postfix)
|
||||
|
||||
Postfix is a Mail Transport Agent (MTA).
|
||||
|
||||
## Current state
|
||||
|
||||
| State | Description |
|
||||
|-------|-------------|
|
||||
| ✓ YES | **Build passes** in the infra (all build deps are ok) |
|
||||
| ✓ YES | **Installs** on the Base Runtime (all runtime deps are ok) |
|
||||
| ✓ YES | **No bootstrap** - uses only proper modules |
|
||||
| ✓ YES | General **tests are in dist-git** |
|
||||
| ✓ YES | General **tests pass** |
|
||||
| ✗ NO | Meets the **Fedora Module Packaging Guidelines** |
|
||||
|
||||
### Notes
|
||||
|
||||
See [**README**](https://github.com/container-images/postfix) on github for more details.
|
||||
|
||||
See [**hub.docker**](https://hub.docker.com/r/modularitycontainers/postfix/) for Dockerimage.
|
||||
|
||||
## Summary
|
||||
|
||||
- Dockerfile.DOVECOT - build container image with dovecot w/o postfix.
|
||||
- Dockerfile.POSTFIX - build container image with postfix w/o dovecot.
|
||||
- Dockerfile.IMAP - build container image with dovecot and postfix installed. Full IMAP server.
|
||||
- Dockerfile.TLS - build container image with postfix TLS enabled w/o dovecot.
|
||||
- imap-template.yml - Template for OpenShift to start IMAP server with two containers (postfix and dovecot)
|
||||
|
||||
|
||||
## How to build the container on 25 port
|
||||
|
||||
```docker build --tag=postfix .```
|
||||
|
||||
|
||||
## How to build the container with TLS enabled
|
||||
|
||||
```docker build -f Docker.TLS --tag=postfix . ```
|
||||
|
||||
## How to build the container with dovecot service
|
||||
|
||||
```docker build -f Docker.IMAP --tag=postfix .```
|
||||
|
||||
## How to use the container over standard 25 port
|
||||
|
||||
Command for running postfix docker container:
|
||||
|
||||
```
|
||||
docker run -it -e MYHOSTNAME=localhost \
|
||||
-p 25:10025\
|
||||
-v $(pwd)/tmp/postfix:/var/spool/postfix \
|
||||
-v $(pwd)/tmp/mail:/var/spool/mail postfix
|
||||
```
|
||||
|
||||
## How to use the container over standard TLS
|
||||
|
||||
Dockerfile for TLS port is Dockerfile.TLS.
|
||||
|
||||
Command for running postfix docker container:
|
||||
```
|
||||
docker run -it -e DEBUG_MODE=yes -e MYHOSTNAME=localhost \
|
||||
-p 25:10025 \
|
||||
postfix
|
||||
```
|
||||
|
||||
Environment variable DEBUG_MODE is used for debugging proposes
|
||||
from Postfix and dovecot point of views.
|
||||
|
||||
## How to use the container with IMAP with TLS enabled (dovecot and Postfix)
|
||||
|
||||
Dockerfile which uses IMAP is Dockerfile.IMAP.
|
||||
|
||||
Command for running postfix docker container:
|
||||
```
|
||||
docker run -it -e MYHOSTNAME=localhost -e DEBUG_MODE \
|
||||
-p 25:10025 -p 587:10587 -p 143:10143 \
|
||||
postfix
|
||||
```
|
||||
|
||||
Environment variable DEBUG_MODE is used for debugging proposes
|
||||
from Postfix and dovecot point of views.
|
||||
|
||||
Docker container does NOT share user from HOST system. Therefore
|
||||
I prefer to create users in container. This is not yet automated. Will be SOON.
|
||||
|
||||
Steps are:
|
||||
|
||||
```docker exec -n postfix /bin/bash```
|
||||
```/file/create_user.sh <user_name>```
|
||||
|
||||
Now the user can be used for mail clients.
|
||||
|
||||
## How to test the postfix mail server
|
||||
|
||||
Commands for testing Postfix docker container:
|
||||
|
||||
```telnet localhost 25```
|
||||
|
||||
```HELO test.localhost```
|
||||
|
||||
```MAIL FROM:<yourname>@<domain.com>```
|
||||
|
||||
```RCPT TO:<demo@localhost>```
|
||||
|
||||
```DATA``` and type whatever you want
|
||||
```
|
||||
Subject: My testing docker container image
|
||||
|
||||
Hi, Testing message
|
||||
regards
|
||||
Docker
|
||||
.
|
||||
```
|
||||
|
||||
## How to test the postfix mail server with TLS
|
||||
|
||||
Command for testing Postfix docker container with
|
||||
enabled TLS is ```openssl```.
|
||||
|
||||
Telnet has not to be used because of all
|
||||
communication is encrypted from the beginning.
|
||||
|
||||
```
|
||||
openssl s_client -starttls smtp -crlf -connect localhost:25
|
||||
```
|
||||
|
||||
## How to test the postfix with dovecot service
|
||||
|
||||
Command for testing Postfix docker container with
|
||||
dovecot is ```openssl```.
|
||||
|
||||
Telnet has not to be used because of all
|
||||
communication is encrypted from the beginning.
|
||||
|
||||
Testing dovecot service with ```openssl```
|
||||
|
||||
```
|
||||
openssl s_client -starttls imap -connect localhost:143
|
||||
```
|
||||
|
||||
Testing postfix service with ```openssl```
|
||||
|
||||
```
|
||||
openssl s_client -debug -starttls smtp -crlf -connect localhost:25
|
||||
```
|
||||
1
dead.module
Normal file
1
dead.module
Normal file
|
|
@ -0,0 +1 @@
|
|||
Obsolete
|
||||
4287
files/ca-bundle.crt
4287
files/ca-bundle.crt
File diff suppressed because it is too large
Load diff
|
|
@ -1,53 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
SERVICES="/etc/services"
|
||||
MASTER="/etc/postfix/master.cf"
|
||||
|
||||
function modify_master_cf(){
|
||||
echo "Changing postfix $MASTER configuration file."
|
||||
MASTER="/etc/postfix/master.cf"
|
||||
grep 'docker_smtp' "$MASTER"
|
||||
if [[ $? -eq 1 ]]; then
|
||||
sed -i 's/^smtp\(\s*\)inet\(.*\)/docker_smtp\1inet\tn\ty\tn\t-\t-\tsmtpd -v/g' "$MASTER"
|
||||
fi
|
||||
}
|
||||
|
||||
function modify_etc_services() {
|
||||
SERVICES="/etc/services"
|
||||
echo "Changing $SERVICES file."
|
||||
grep -n '$POSTFIX_SMTP_PORT/tcp' "$SERVICES"
|
||||
if [[ $? -eq 1 ]]; then
|
||||
echo "Add docker_smtp port into $SERVICES."
|
||||
echo "docker_smtp $POSTFIX_SMTP_PORT/tcp mail" >> "$SERVICES"
|
||||
echo "docker_smtp $POSTFIX_SMTP_PORT/udp mail" >> "$SERVICES"
|
||||
else
|
||||
echo "docker_smtp port already exists in $SERVICES file."
|
||||
fi
|
||||
grep -n '$POSTFIX_IMAP_PORT/tcp' "$SERVICES"
|
||||
if [[ $? -eq 1 ]]; then
|
||||
echo "Add docker_imap port into $SERVICES."
|
||||
echo "docker_imap $POSTFIX_IMAP_PORT/tcp imap2" >> "$SERVICES"
|
||||
echo "docker_imap $POSTFIX_IMAP_PORT/udp imap2" >> "$SERVICES"
|
||||
else
|
||||
echo "docker_imap port already exists in $SERVICES file."
|
||||
fi
|
||||
grep -n '$POSTFIX_SUBM_PORT/tcp' "$SERVICES"
|
||||
if [[ $? -eq 1 ]]; then
|
||||
echo "Add docker_imap port into $SERVICES."
|
||||
echo "docker_submission $POSTFIX_SUBM_PORT/tcp msa" >> "$SERVICES"
|
||||
echo "docker_submission $POSTFIX_SUBM_PORT/udp msa" >> "$SERVICES"
|
||||
else
|
||||
echo "docker_submission port already exists in $SERVICES file."
|
||||
fi
|
||||
}
|
||||
|
||||
update_dovecot_conf() {
|
||||
option=$1
|
||||
value=$2
|
||||
file_name="/etc/dovecot/dovecot.conf"
|
||||
doveconf -n | grep "^$option"
|
||||
if [[ $? -eq 1 ]]; then
|
||||
echo "$option = $value" >> $file_name
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
grep $1 /etc/passwd
|
||||
if [[ $? -ne 0 ]]; then
|
||||
useradd $1 && usermod -a -G mail $1 && passwd $1
|
||||
echo "$1: postmaster" >> /etc/aliases
|
||||
newaliases
|
||||
postmap /etc/aliases
|
||||
postfix reload
|
||||
fi
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
DOVECOT_CONF="/etc/dovecot/dovecot.conf"
|
||||
VIRTUAL="/var/mail"
|
||||
|
||||
function modify_main_cf() {
|
||||
# Configuration changes needed in main.cf
|
||||
echo "Changing postfix the /etc/postfix/main.cf configuration file."
|
||||
postconf -e inet_interfaces=all
|
||||
postconf -e smtpd_tls_auth_only=yes
|
||||
postconf -e smtpd_tls_CAfile=/etc/postfix/ca-bundle.crt
|
||||
postconf -e smtpd_tls_key_file=/etc/postfix/test.pem
|
||||
postconf -e smtpd_tls_cert_file=/etc/postfix/test.pem
|
||||
postconf -e smtpd_tls_loglevel=3
|
||||
postconf -e smtpd_tls_received_header=yes
|
||||
postconf -e smtpd_tls_session_cache_timeout=3600s
|
||||
postconf -e smtpd_tls_security_level=may
|
||||
postconf -e smtpd_sasl_type=dovecot
|
||||
postconf -e smtpd_sasl_path=private/auth
|
||||
postconf -e smtpd_sasl_auth_enable=yes
|
||||
postconf -e broken_sasl_auth_clients=yes
|
||||
postconf -e smtpd_sasl_security_options=noanonymous
|
||||
postconf -e myorigin=${MYHOSTNAME}
|
||||
postconf -e mydomain=${MYHOSTNAME}
|
||||
postconf -e myhostname=mail.${MYHOSTNAME}
|
||||
postconf -e mydestination=${MYHOSTNAME}
|
||||
postconf -e debug_peer_level=3
|
||||
postconf -e debug_peer_list=${MYHOSTNAME}
|
||||
}
|
||||
|
||||
if [[ -f "/var/run/nologin" ]]; then
|
||||
rm -f /var/run/nologin
|
||||
fi
|
||||
|
||||
if [[ -z ${MYHOSTNAME} ]]; then
|
||||
MYHOSTNAME=localhost
|
||||
fi
|
||||
|
||||
source /files/common.sh
|
||||
|
||||
mkdir -p /var/certs
|
||||
chown root:root /var/certs
|
||||
cp /files/*.{crt,pem} /etc/postfix/
|
||||
|
||||
|
||||
modify_etc_services
|
||||
modify_main_cf
|
||||
modify_master_cf
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
service imap-login {
|
||||
process_min_avail = 16
|
||||
|
||||
inet_listener imap {
|
||||
port = 10143
|
||||
}
|
||||
}
|
||||
|
||||
service auth {
|
||||
unix_listener /var/spool/postfix/private/auth {
|
||||
group = postfix
|
||||
mode = 0660
|
||||
user=postfix
|
||||
}
|
||||
}
|
||||
|
|
@ -1,96 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
DOVECOT_CONF="/etc/dovecot/dovecot.conf"
|
||||
VIRTUAL="/var/mail"
|
||||
|
||||
function modify_main_cf() {
|
||||
# Configuration changes needed in main.cf
|
||||
echo "Changing postfix the /etc/postfix/main.cf configuration file."
|
||||
postconf -e inet_interfaces=all
|
||||
postconf -e smtpd_tls_auth_only=yes
|
||||
postconf -e smtpd_tls_CAfile=/etc/postfix/ca-bundle.crt
|
||||
postconf -e smtpd_tls_key_file=/etc/postfix/test.pem
|
||||
postconf -e smtpd_tls_cert_file=/etc/postfix/test.pem
|
||||
postconf -e smtpd_tls_loglevel=3
|
||||
postconf -e smtpd_tls_received_header=yes
|
||||
postconf -e smtpd_tls_session_cache_timeout=3600s
|
||||
postconf -e smtpd_tls_security_level=may
|
||||
postconf -e smtpd_sasl_type=dovecot
|
||||
postconf -e smtpd_sasl_path=private/auth
|
||||
postconf -e smtpd_sasl_auth_enable=yes
|
||||
postconf -e broken_sasl_auth_clients=yes
|
||||
postconf -e smtpd_sasl_security_options=noanonymous
|
||||
postconf -e myorigin=${MYHOSTNAME}
|
||||
postconf -e mydomain=${MYHOSTNAME}
|
||||
postconf -e myhostname=mail.${MYHOSTNAME}
|
||||
postconf -e mydestination=${MYHOSTNAME}
|
||||
postconf -e debug_peer_level=3
|
||||
postconf -e debug_peer_list=${MYHOSTNAME}
|
||||
}
|
||||
|
||||
function modify_dovecot_conf() {
|
||||
update_dovecot_conf "mail_location" "mbox:~/mail:INBOX=/var/mail/%u"
|
||||
update_dovecot_conf "disable_plaintext_auth" "no"
|
||||
update_dovecot_conf "auth_mechanisms" "plain login"
|
||||
update_dovecot_conf "mail_privileged_group" "mail"
|
||||
update_dovecot_conf "auth_debug" "yes"
|
||||
update_dovecot_conf "auth_verbose" "yes"
|
||||
update_dovecot_conf "mail_debug" "yes"
|
||||
update_dovecot_conf "debug_log_path" "/var/dovecot/dovecot-debug.log"
|
||||
update_dovecot_conf "info_log_path" "/var/dovecot/dovecot-info.log"
|
||||
update_dovecot_conf "log_path" "/var/dovecot/dovecot.log"
|
||||
update_dovecot_conf "protocols" "imap"
|
||||
|
||||
doveconf -n | grep "ssl"
|
||||
if [[ $? -eq 1 ]]; then
|
||||
echo "ssl = yes" >> /etc/dovecot/conf.d/10-ssl.conf
|
||||
else
|
||||
sed -i 's/^ssl\(\s*\)=\(\s*\).*/ssl\1=\2yes/g' /etc/dovecot/conf.d/10-ssl.conf
|
||||
fi
|
||||
doveconf -n | grep "service imap-login"
|
||||
if [[ $? -eq 1 ]]; then
|
||||
cat /files/dovecot_imap.conf >> /etc/dovecot/conf.d/10-master.conf
|
||||
fi
|
||||
echo "docker_submission inet n y n - - smtpd -v
|
||||
-o syslog_name=postfix/submission
|
||||
-o smtpd_tls_security_level=encrypt
|
||||
-o smtpd_sasl_auth_enable=yes
|
||||
-o smtpd_tls_wrappermode=no
|
||||
-o smtpd_sasl_type=dovecot
|
||||
-o smtpd_sasl_path=private/auth
|
||||
-o smtpd_sasl_local_domain=localhost" >> /etc/postfix/master.cf
|
||||
|
||||
}
|
||||
|
||||
if [[ -f "/var/run/nologin" ]]; then
|
||||
rm -f /var/run/nologin
|
||||
fi
|
||||
|
||||
DOVECOT_PKI="/etc/pki/dovecot"
|
||||
if [[ ! -f "$DOVECOT_PKI/private/dovecot.pem" ]]; then
|
||||
SSLDIR=$DOVECOT_PKI OPENSSLCONFIG="$DOVECOT_PKI/dovecot-openssl.cnf" \
|
||||
/usr/libexec/dovecot/mkcert.sh /dev/null 2>&1
|
||||
fi
|
||||
if [[ ! -f "/var/lib/dovecot/ssl-parametrs.dat" ]]; then
|
||||
/usr/libexec/dovecot/ssl-params >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
if [[ -z ${MYHOSTNAME} ]]; then
|
||||
MYHOSTNAME=localhost
|
||||
fi
|
||||
|
||||
source /files/common.sh
|
||||
|
||||
mkdir -p /var/certs
|
||||
chown root:root /var/certs
|
||||
mkdir -p /var/dovecot
|
||||
chown root:root /var/dovecot
|
||||
cp /files/*.{crt,pem} /etc/postfix/
|
||||
|
||||
|
||||
modify_etc_services
|
||||
modify_main_cf
|
||||
modify_master_cf
|
||||
modify_dovecot_conf
|
||||
|
||||
dovecot -n
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
|
||||
function modify_main_cf() {
|
||||
# Configuration changes needed in main.cf
|
||||
echo "Changing postfix configuration"
|
||||
postconf -e inet_interfaces=all
|
||||
postconf -e myorigin=/etc/mailname
|
||||
postconf -e mynetworks='127.0.0.1/32 192.168.0.0/16 172.16.0.0/12 10.0.0.0/8'
|
||||
postconf -e smtpd_relay_restrictions='permit_mynetworks permit_sasl_authenticated defer_unauth_destination'
|
||||
postconf -e mydomain=${MYHOSTNAME}
|
||||
postconf -e myhostname=mail.${MYHOSTNAME}
|
||||
postconf -e mydestination=${MYHOSTNAME}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if [[ -z ${MYHOSTNAME} ]]; then
|
||||
MYHOSTNAME=localhost
|
||||
fi
|
||||
|
||||
source /files/common.sh
|
||||
|
||||
modify_etc_services
|
||||
modify_main_cf
|
||||
modify_master_cf
|
||||
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
DOVECOT_CONF="/etc/dovecot/dovecot.conf"
|
||||
VIRTUAL="/var/mail"
|
||||
|
||||
function modify_main_cf() {
|
||||
# Configuration changes needed in main.cf
|
||||
echo "Changing postfix the /etc/postfix/main.cf configuration file."
|
||||
postconf -e inet_interfaces=all
|
||||
postconf -e smtpd_tls_auth_only=yes
|
||||
postconf -e smtpd_tls_CAfile=/etc/postfix/ca-bundle.crt
|
||||
postconf -e smtpd_tls_key_file=/etc/postfix/test.pem
|
||||
postconf -e smtpd_tls_cert_file=/etc/postfix/test.pem
|
||||
postconf -e smtpd_tls_loglevel=3
|
||||
postconf -e smtpd_tls_received_header=yes
|
||||
postconf -e smtpd_tls_session_cache_timeout=3600s
|
||||
postconf -e smtpd_tls_security_level=may
|
||||
postconf -e smtpd_sasl_type=dovecot
|
||||
postconf -e smtpd_sasl_path=private/auth
|
||||
postconf -e smtpd_sasl_auth_enable=yes
|
||||
postconf -e broken_sasl_auth_clients=yes
|
||||
postconf -e smtpd_sasl_security_options=noanonymous
|
||||
postconf -e myorigin=${MYHOSTNAME}
|
||||
postconf -e mydomain=${MYHOSTNAME}
|
||||
postconf -e myhostname=mail.${MYHOSTNAME}
|
||||
postconf -e mydestination=${MYHOSTNAME}
|
||||
postconf -e debug_peer_level=3
|
||||
postconf -e debug_peer_list=${MYHOSTNAME}
|
||||
}
|
||||
|
||||
if [[ -f "/var/run/nologin" ]]; then
|
||||
rm -f /var/run/nologin
|
||||
fi
|
||||
|
||||
if [[ -z ${MYHOSTNAME} ]]; then
|
||||
MYHOSTNAME=localhost
|
||||
fi
|
||||
|
||||
source /files/common.sh
|
||||
|
||||
mkdir -p /var/certs
|
||||
chown root:root /var/certs
|
||||
cp /files/*.{crt,pem} /etc/postfix/
|
||||
|
||||
|
||||
modify_etc_services
|
||||
modify_main_cf
|
||||
modify_master_cf
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
function modify_main_cf() {
|
||||
# Configuration changes needed in main.cf
|
||||
echo "Changing postfix the /etc/postfix/main.cf configuration file."
|
||||
postconf -e inet_interfaces=all
|
||||
postconf -e smtpd_use_tls=yes
|
||||
postconf -e smtpd_tls_auth_only=no
|
||||
postconf -e myorigin=/etc/mailname
|
||||
postconf -e mydomain=${MYHOSTNAME}
|
||||
postconf -e myhostname="mail.$MYHOSTNAME"
|
||||
postconf -e mydestination=${MYHOSTNAME}
|
||||
postconf -e smtpd_tls_CAfile=/etc/postfix/cacert.pem
|
||||
postconf -e smtpd_tls_key_file=/etc/postfix/test.pem
|
||||
postconf -e smtpd_tls_cert_file=/etc/postfix/test.pem
|
||||
postconf -e smtpd_tls_loglevel=3
|
||||
postconf -e smtpd_tls_received_header=yes
|
||||
postconf -e smtpd_tls_session_cache_timeout=3600s
|
||||
postconf -e smtpd_tls_security_level=may
|
||||
postconf -e tls_random_source=dev:/dev/urandom
|
||||
postconf -e smtpd_relay_restrictions='permit_mynetworks permit_tls_clientcerts reject_unauth_destination'
|
||||
}
|
||||
|
||||
|
||||
if [[ -z ${MYHOSTNAME} ]]; then
|
||||
MYHOSTNAME=localhost
|
||||
fi
|
||||
|
||||
source /files/common.sh
|
||||
|
||||
mkdir -p /var/certs
|
||||
chown root:root /var/certs
|
||||
|
||||
modify_etc_services
|
||||
modify_main_cf
|
||||
modify_master_cf
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Wait before postfix is really started.
|
||||
postfix start
|
||||
|
||||
while true; do
|
||||
state=$(script -c 'postfix status' | grep postfix/postfix-script)
|
||||
echo $state
|
||||
if [[ "$state" != "${state/is running/}" ]]; then
|
||||
PID=${state//[^0-9]/}
|
||||
if [[ -z $PID ]]; then
|
||||
continue
|
||||
fi
|
||||
if [[ ! -d "/proc/$PID" ]]; then
|
||||
echo "Postfix proces $PID does not exist."
|
||||
break
|
||||
fi
|
||||
else
|
||||
echo "Postfix is not running."
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Copy all certificates
|
||||
#cp /var/certs/*.{crt,pem} /etc/postfix/
|
||||
# Wait before postfix is really started.
|
||||
|
||||
if [[ ! -z "${DEBUG_MODE}" ]]; then
|
||||
rpm -q syslog-ng
|
||||
if [[ $? -ne 0 ]]; then
|
||||
dnf -y --setopt=tsflags=nodocs install syslog-ng && \
|
||||
dnf -y clean all
|
||||
syslog-ng
|
||||
fi
|
||||
fi
|
||||
|
||||
postfix start
|
||||
|
||||
dovecot
|
||||
|
||||
while true; do
|
||||
state=$(script -c 'postfix status' | grep postfix/postfix-script)
|
||||
echo $state
|
||||
dovecot_pid=$(cat /var/run/dovecot/master.pid)
|
||||
echo $dovecot_pid
|
||||
if [[ "$state" != "${state/is running/}" ]]; then
|
||||
PID=${state//[^0-9]/}
|
||||
if [[ -z $PID ]]; then
|
||||
continue
|
||||
fi
|
||||
if [[ ! -d "/proc/$PID" ]]; then
|
||||
echo "Postfix proces $PID does not exist."
|
||||
break
|
||||
fi
|
||||
sleep 10
|
||||
else
|
||||
echo "Postfix is not running."
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Copy all certificates
|
||||
#cp /var/certs/*.{crt,pem} /etc/postfix/
|
||||
# Wait before postfix is really started.
|
||||
|
||||
if [[ ! -z "${DEBUG_MODE}" ]]; then
|
||||
rpm -q syslog-ng
|
||||
if [[ $? -ne 0 ]]; then
|
||||
dnf -y --setopt=tsflags=nodocs install syslog-ng && \
|
||||
dnf -y clean all
|
||||
syslog-ng
|
||||
fi
|
||||
fi
|
||||
|
||||
postfix start
|
||||
|
||||
dovecot
|
||||
|
||||
while true; do
|
||||
state=$(script -c 'postfix status' | grep postfix/postfix-script)
|
||||
echo $state
|
||||
dovecot_pid=$(cat /var/run/dovecot/master.pid)
|
||||
echo $dovecot_pid
|
||||
if [[ "$state" != "${state/is running/}" ]]; then
|
||||
PID=${state//[^0-9]/}
|
||||
if [[ -z $PID ]]; then
|
||||
continue
|
||||
fi
|
||||
if [[ ! -d "/proc/$PID" ]]; then
|
||||
echo "Postfix proces $PID does not exist."
|
||||
break
|
||||
fi
|
||||
sleep 10
|
||||
else
|
||||
echo "Postfix is not running."
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Copy all certificates
|
||||
#cp /var/certs/*.{crt,pem} /etc/postfix/
|
||||
# Wait before postfix is really started.
|
||||
|
||||
if [[ ! -z "${DEBUG_MODE}" ]]; then
|
||||
rpm -q syslog-ng
|
||||
if [[ $? -ne 0 ]]; then
|
||||
dnf -y --setopt=tsflags=nodocs install syslog-ng && \
|
||||
dnf -y clean all
|
||||
syslog-ng
|
||||
fi
|
||||
fi
|
||||
|
||||
postfix start
|
||||
|
||||
while true; do
|
||||
state=$(script -c 'postfix status' | grep postfix/postfix-script)
|
||||
echo $state
|
||||
if [[ "$state" != "${state/is running/}" ]]; then
|
||||
PID=${state//[^0-9]/}
|
||||
if [[ -z $PID ]]; then
|
||||
continue
|
||||
fi
|
||||
if [[ ! -d "/proc/$PID" ]]; then
|
||||
echo "Postfix proces $PID does not exist."
|
||||
break
|
||||
fi
|
||||
sleep 10
|
||||
else
|
||||
echo "Postfix is not running."
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Copy all certificates
|
||||
#cp /var/certs/*.{crt,pem} /etc/postfix/
|
||||
|
||||
# Wait before postfix is really started.
|
||||
postfix start
|
||||
|
||||
while true; do
|
||||
state=$(script -c 'postfix status' | grep postfix/postfix-script)
|
||||
echo $state
|
||||
if [[ "$state" != "${state/is running/}" ]]; then
|
||||
PID=${state//[^0-9]/}
|
||||
if [[ -z $PID ]]; then
|
||||
continue
|
||||
fi
|
||||
if [[ ! -d "/proc/$PID" ]]; then
|
||||
echo "Postfix proces $PID does not exist."
|
||||
break
|
||||
fi
|
||||
else
|
||||
echo "Postfix is not running."
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDAPcnLcD0wzswe
|
||||
S+mf+uBiBM5AcZwbYbBsYTLR6rF9p7dT5fAqcjM6mX29JACK797vOo1SPJG6pP4M
|
||||
wqRXVSwKbwglbGO20q6Nc5sPKQE2PpZz7uxoB2D6UqsFYftGmceeJLGk/r11fL/m
|
||||
G+sMHlwLNCFFDuZnlU23vrUfi8zEsqQJxny0hhQ1qEzDY6vwzaPMnd+ueC/a8zA9
|
||||
TljrHIqfXjfd+94W/MvFNlNsAc00sLWi2izIqM8E5Gv0bP32sZkgVayNLartRdvt
|
||||
1EckqfUjwYL5a7mWgbB15JZTQWC0fesUHs5ayTY0ZuOD1N6lWStD5TtLQKRRzBEd
|
||||
9SV35+ZRAgMBAAECggEAXU8gXXBzIvedN69dDFu3AZyXh8wdG2VFPrXG9wDVecoo
|
||||
P77B3bhkiTLrRxzsboOTT8a5xYrEqTVgYk0ve3xJzh6qc4+yrpCATQQp5SfgALZM
|
||||
TKVRdgTu21G41PoD/vaxX18sIovK5fXRJx2x7sXlo0KAS4a56tkbSe5094ThtS6v
|
||||
nUGFalBXJxojJpk61WESv1yPAKoSVqv+mDNY15It2tznNTs2Q9bJv3FwYtKALA7O
|
||||
okUZKsWtBgWBW/ZbduDbqkWhlU/dYNb3Gq45mauGBWWYsDP3WvxlPYQhuz+ZjuBO
|
||||
E13EezTmx7B0ttZ29gHQs/vfnKk7Bis0xCvhmheegQKBgQD4NFIPuVdfoPL6D8rh
|
||||
ZiRjx6g2D77JVmdg87lS4m2qe4gd12og/VOX5VE3kHH3zLeBrFDIvM/1YK3yhBb9
|
||||
DiOjzk+X3V7+LgsWun70eyE3CKUb9eusDQfkMaQU8d4Ps+8ItWiN60NKHwp1CSBj
|
||||
wVW2Du8xPRJfxjAlPnR+94KQGQKBgQDGR3+0C2Bljl9SiOBK0YO69C1yZwJBzDut
|
||||
AJbVf5bE3Z8SAkzzRPtTVu2f74++wVQCM/WjVciH6R0Yva1sVh1NEHjgJKpjy9Rj
|
||||
CVhpNoWz+XEtVCp57tkAWkJ5oJnC396AWcF4tsh+Wu6oEy9W0RQxBxWGhKMoA0L8
|
||||
YEMJ09du+QKBgQDgXwu/wyBFBk4f157jW16SBK7/EAS8JSuW7TwevSm976YAs/bw
|
||||
k5C5w0dEH4OnKpzI0GjGzkh/3UHh9Z6CbAGz1pEFC80PobfMeBLEF3rTMTFwsUK2
|
||||
aaE0m9tkQ7EmKNZw3O0DPiW6H41odzOcee1tgtqffEHb6mEjie3tyPlyIQKBgBe9
|
||||
od3F6vHd/S3ds7Vhprsw12w2Rz/nm1GYm3bOwxepTY2TdvE91jXhV6xpu7VkYpGs
|
||||
9QFsmQkk8VXwCB7LpNCAY2i7Gye91R1SliJq49Fr0ZBS3o8g+RygsgrsHt0Ffxex
|
||||
J4gzoof2jVLUkTt850UDiyFDKmH1GgUr5Xr8wXPJAoGBAK6GbYcj6RHjkCAk4+V+
|
||||
1gvOG3g8RKNx37YB4YWkp/1wUjT7YPO80TlCWSwgfWFdSTJFijP1VlqVtW2waGTz
|
||||
am5LGQQda1AXufFjYMEBLXj7ng57qdW0lkhY167qNaQHqH17KSl/SzUMI19WHfi1
|
||||
S1WSQqnBP7NbhKWHIJTyxnIT
|
||||
-----END PRIVATE KEY-----
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIID7TCCAtWgAwIBAgIJALaixliKLoBxMA0GCSqGSIb3DQEBCwUAMIGMMQswCQYD
|
||||
VQQGEwJDWjEXMBUGA1UECAwOQ3plY2ggUmVwdWJsaWMxDTALBgNVBAcMBEJybm8x
|
||||
HDAaBgNVBAoME0RlZmF1bHQgQ29tcGFueSBMdGQxEjAQBgNVBAMMCWxvY2FsaG9z
|
||||
dDEjMCEGCSqGSIb3DQEJARYUcG9zdG1hc3RlckBsb2NhbGhvc3QwHhcNMTYxMjA1
|
||||
MDk1NDU0WhcNMTcxMjA1MDk1NDU0WjCBjDELMAkGA1UEBhMCQ1oxFzAVBgNVBAgM
|
||||
DkN6ZWNoIFJlcHVibGljMQ0wCwYDVQQHDARCcm5vMRwwGgYDVQQKDBNEZWZhdWx0
|
||||
IENvbXBhbnkgTHRkMRIwEAYDVQQDDAlsb2NhbGhvc3QxIzAhBgkqhkiG9w0BCQEW
|
||||
FHBvc3RtYXN0ZXJAbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
||||
CgKCAQEAwD3Jy3A9MM7MHkvpn/rgYgTOQHGcG2GwbGEy0eqxfae3U+XwKnIzOpl9
|
||||
vSQAiu/e7zqNUjyRuqT+DMKkV1UsCm8IJWxjttKujXObDykBNj6Wc+7saAdg+lKr
|
||||
BWH7RpnHniSxpP69dXy/5hvrDB5cCzQhRQ7mZ5VNt761H4vMxLKkCcZ8tIYUNahM
|
||||
w2Or8M2jzJ3frngv2vMwPU5Y6xyKn1433fveFvzLxTZTbAHNNLC1otosyKjPBORr
|
||||
9Gz99rGZIFWsjS2q7UXb7dRHJKn1I8GC+Wu5loGwdeSWU0FgtH3rFB7OWsk2NGbj
|
||||
g9TepVkrQ+U7S0CkUcwRHfUld+fmUQIDAQABo1AwTjAdBgNVHQ4EFgQUBKQMit9o
|
||||
QtNLpxnnaot2tmF5Mp8wHwYDVR0jBBgwFoAUBKQMit9oQtNLpxnnaot2tmF5Mp8w
|
||||
DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEABiL93djmUOoPOMvyM1Pi
|
||||
2emMmIH2Omk1T4ro4uKQPzHjSFWjdlDtGwqA2YFZ/SQsdCObTC0Z0aDXqEqWFO5w
|
||||
pL2wRWl57i/MHxYOlx6WtvLy1UohHowF29aMLwRHItOSu7Idtul5KWDOJS+lWGd5
|
||||
u7/YoxAsqw3ZfJdT9BT211J0NwQqwsWssnWgptZ5Nb8adPINLZiUU+Avq6OjtZ8O
|
||||
pky0kePX1jdUcIn+A5dmjutJ1QMw5uqQjVi6ESy+fUSmwgVvAfGHJaB2h1JQbJ8Z
|
||||
x/daeksGzxpwqk/Ir1kVaQuMNMH5zToF/RLJZR8uUBFSNm4yP1pHxnaLht3rrthJ
|
||||
pw==
|
||||
-----END CERTIFICATE-----
|
||||
52
postfix.yaml
52
postfix.yaml
|
|
@ -1,52 +0,0 @@
|
|||
document: modulemd
|
||||
version: 1
|
||||
data:
|
||||
summary: Postfix Mail Transport Agent
|
||||
description: Postfix is a Mail Transport Agent (MTA).
|
||||
license:
|
||||
module: [ MIT ]
|
||||
dependencies:
|
||||
buildrequires:
|
||||
base-runtime: f26
|
||||
# dependency on perl-generators
|
||||
perl: f26
|
||||
# add dependency because of mariadb, postgresql, tinycdb
|
||||
common-build-dependencies: f26
|
||||
#common-build-dependencies-bootstrap: f26
|
||||
shared-userspace: f26
|
||||
postgresql: f26
|
||||
mariadb: f26
|
||||
requires:
|
||||
base-runtime: f26
|
||||
perl: f26
|
||||
postgresql: private-f27-modules
|
||||
mariadb: f26
|
||||
references:
|
||||
community: https://docs.pagure.org/modularity/
|
||||
documentation: https://github.com/modularity-modules/postfix
|
||||
tracker: https://github.com/modularity-modules/postfix
|
||||
profiles:
|
||||
default:
|
||||
rpms:
|
||||
- postfix
|
||||
api:
|
||||
rpms:
|
||||
- postfix
|
||||
- postfix-cdb
|
||||
- postfix-ldap
|
||||
- postfix-mysql
|
||||
- postfix-pcre
|
||||
- postfix-pgsql
|
||||
- postfix-sqlite
|
||||
filter:
|
||||
rpms:
|
||||
- postfix-perl-scripts
|
||||
components:
|
||||
rpms:
|
||||
postfix:
|
||||
rationale: A dependency of tangerine.
|
||||
ref: f26
|
||||
buildorder: 10
|
||||
tinycdb:
|
||||
rationale: A dependency of tangerine.
|
||||
ref: f26
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[fedora]
|
||||
name=fedora
|
||||
baseurl=https://mirrors.nic.cz/fedora/linux/development/26/Everything/x86_64/os/
|
||||
enabled=0
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[perl]
|
||||
name=perl
|
||||
baseurl=https://kojipkgs.fedoraproject.org/repos/module-fcd86adc7a9c7e0a/latest/x86_64/
|
||||
enabled=0
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[postfix]
|
||||
name=postfix
|
||||
baseurl=https://kojipkgs.stg.fedoraproject.org/compose/branched/jkaluza/latest-Fedora-Modular-26/compose/Server/x86_64/os/
|
||||
enabled=0
|
||||
0
sources
0
sources
|
|
@ -1,6 +0,0 @@
|
|||
MODULE_LINT=/usr/share/moduleframework/tools/modulelint.py
|
||||
CMD=python -m avocado run --filter-by-tags=-WIP $(MODULE_LINT) *.py
|
||||
|
||||
#
|
||||
all:
|
||||
$(CMD)
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
document: modularity-testing
|
||||
version: 1
|
||||
name: postfix
|
||||
modulemd-url: http://raw.githubusercontent.com/container-images/postfix/master/postfix.yaml
|
||||
service:
|
||||
port: 25
|
||||
packages:
|
||||
rpms:
|
||||
- postfix
|
||||
testdependecies:
|
||||
rpms:
|
||||
- nc
|
||||
module:
|
||||
docker:
|
||||
start: "docker run -e MYHOSTNAME=localhost -p 25:10025"
|
||||
source: https://github.com/container-images/postfix.git
|
||||
container: docker.io/modularitycontainers/postfix
|
||||
rpm:
|
||||
start: systemctl start postfix
|
||||
stop: systemctl stop postfix
|
||||
status: systemctl status postfix
|
||||
|
|
@ -1,58 +0,0 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# This Modularity Testing Framework helps you to write tests for modules
|
||||
# Copyright (C) 2017 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# he Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along
|
||||
# with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Authors: Jan Scotka <jscotka@redhat.com>
|
||||
#
|
||||
|
||||
import socket
|
||||
from avocado import main
|
||||
from avocado.core import exceptions
|
||||
from moduleframework import module_framework
|
||||
|
||||
|
||||
class SanityCheck1(module_framework.AvocadoTest):
|
||||
"""
|
||||
:avocado: enable
|
||||
"""
|
||||
|
||||
def testConnectToPostfix(self):
|
||||
self.start()
|
||||
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
s.connect(('localhost', self.getConfig()['service']['port']))
|
||||
s.sendall("HELO test.localhost")
|
||||
s.close()
|
||||
|
||||
def testPostfixExists(self):
|
||||
self.start()
|
||||
self.run("ls -la /usr/sbin/postfix")
|
||||
|
||||
def testPostfixConfiguration(self):
|
||||
self.start()
|
||||
self.run("postconf -n mydomain | grep localhost")
|
||||
self.run("postconf -n myhostname | grep mail.localhost")
|
||||
self.run("postconf -n mydestination | grep localhost")
|
||||
|
||||
def testPostfixSkipped(self):
|
||||
module_framework.skipTestIf("postfix" not in self.getActualProfile())
|
||||
self.start()
|
||||
self.run("postconf -n")
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Loading…
Add table
Add a link
Reference in a new issue