Compare commits

..
6 Commits
Author SHA1 Message Date
Eliezer Croitoru 773c70e5a8 Added rocky linux 10 2026-10-11 23:37:19 +03:00
Eliezer Croitoru 2fcbee0b4d Added bash container 2025-01-28 10:32:57 +02:00
Eliezer Croitoru f325fcbeb5 4 2024-04-09 09:45:30 +03:00
Eliezer Croitoru a17b7ea9db 5 2024-04-09 09:35:16 +03:00
Eliezer Croitoru d27ce151c5 3 2024-04-09 09:31:00 +03:00
Eliezer Croitoru 1058f74a2f 2 2024-04-09 09:30:04 +03:00
23 changed files with 269 additions and 1 deletions

No files matched your search

+9 -1
View File
@@ -18,4 +18,12 @@ yarn-error.log*
requests.rest
.prettierrc
CSV_FILES/
log/
log/
bin/output/cert.csr
bin/output/cert.pem
bin/output/priv.key
bin/tmp/csrconfig.txt
traefik/cert.pem
traefik/key.pem
+20
View File
@@ -0,0 +1,20 @@
all:
echo OK
deploy-traefik:
ansible-playbook -i local-inventory --connection=local \
--extra-vars config_dir=/etc/app-traefik \
--extra-vars traefik_dashboard_hostname=traefik.ip.ngtech.home \
deploy-traefik.yml
gen-cert:
cd bin && bash gen-cert.sh
use-cert:
cp -vf bin/output/cert.pem traefik/cert.pem
cp -vf bin/output/priv.key traefik/key.pem
install-dependencies:
deploy-docker:
ansible-playbook --connection=local -i local-inventory deploy-docker-ce.yml
+36
View File
@@ -0,0 +1,36 @@
FROM rockylinux/rockylinux:10
ENV container=docker
RUN dnf -y install epel-release \
&& crb enable \
&& dnf update -y \
&& dnf install -y sudo \
which \
hostname \
libyaml-devel \
python3 \
python3-pip \
python3-pyyaml \
rsync \
wget \
curl \
git \
ruby \
&& dnf clean all
RUN python3 -m pip install --no-cache-dir --upgrade pip \
&& pip3 install --no-cache-dir ansible
RUN ansible-galaxy collection install community.general && \
ansible-galaxy collection install ansible.posix && \
ansible-galaxy collection install community.docker && \
ansible-galaxy collection list
RUN mkdir -p /root/.ssh
# Disable requiretty.
RUN sed -i -e 's/^\(Defaults\s*requiretty\)/#--- \1/' /etc/sudoers
CMD ["ansible-playbook"]
+5
View File
@@ -0,0 +1,5 @@
---
collections:
- community.general
- ansible.posix
- community.docker
+32
View File
@@ -0,0 +1,32 @@
FROM rockylinux:9
ENV container=docker
# Install requirements.
RUN dnf -y install rpm dnf-plugins-core \
&& dnf -y config-manager --set-enabled crb \
&& dnf -y update \
&& dnf -y install --allowerasing \
epel-release \
sudo \
which \
hostname \
libyaml-devel \
python3 \
python3-pip \
python3-pyyaml \
rsync \
wget \
curl \
git \
ruby ruby-devel \
ruby bash bash-completion openssh sshpass nmap-ncat \
nmap \
&& dnf clean all
RUN python3 -m pip install --no-cache-dir --upgrade pip
RUN mkdir -p /root/.ssh
CMD ["bash"]
+24
View File
@@ -0,0 +1,24 @@
#!/usr/bin/env bash
STATE=$(head -1 vars/state)
COUNTRY=$(head -1 vars/country)
LOCALITY=$(head -1 vars/locality)
ORGANIZATION=$(head -1 vars/organization)
LOCALITRY=$(head -1 vars/locality)
CN=$(head -1 vars/cn)
DAYS=$(head -1 vars/days)
SUBJECT_ALTERNATIVES=$( python3 gen-subject-alternatives.py )
jinja2 templates/csrconfig.txt.j2 -D cn="${CN}" -D country="${COUNTRY}" -D state="${STATE}" -D locality="${LOCALITY}" \
-D org="${ORGANIZATION}" -D subj_alternative="${SUBJECT_ALTERNATIVES}" > tmp/csrconfig.txt
#generate the RSA private key
openssl genpkey -outform PEM -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out output/priv.key
#Create the CSR
openssl req -new -nodes -key output/priv.key -config tmp/csrconfig.txt -out output/cert.csr
# Generate the self-signed certificate
openssl x509 -req -days ${DAYS} -in output/cert.csr -signkey output/priv.key -out output/cert.pem
+42
View File
@@ -0,0 +1,42 @@
#!/usr/bin/env python3
def read_file(file_name):
with open(file_name, 'r') as file:
data = file.readlines()
return [line.strip() for line in data if line.strip()]
def generate_san_config(ips, domains, emails):
san_config = ""
entries = []
for i, ip in enumerate(ips):
entries.append(f"IP.{i} = {ip}")
for i, domain in enumerate(domains):
entries.append(f"DNS.{i} = {domain}")
for i, email in enumerate(emails):
entries.append(f"email.{i} = {email}")
san_config += "\n".join(entries)
return san_config
def main():
ip_file = "vars/ips"
domain_file = "vars/domains"
email_file = "vars/emails"
ips = read_file(ip_file)
domains = read_file(domain_file)
emails = read_file(email_file)
if not ips and not domains and not emails:
return
san_config = generate_san_config(ips, domains, emails)
print(san_config)
if __name__ == "__main__":
main()
+44
View File
@@ -0,0 +1,44 @@
#!/usr/bin/env ruby
def read_file(file_name)
File.readlines(file_name).map(&:strip).reject(&:empty?)
end
def generate_san_config(ips, domains, emails)
entries = []
ips.each_with_index do |ip, i|
entries << "IP.#{i} = #{ip}"
end
domains.each_with_index do |domain, i|
entries << "DNS.#{i} = #{domain}"
end
emails.each_with_index do |email, i|
entries << "email.#{i} = #{email}"
end
entries.join("\n")
end
def main
ip_file = "vars/ips"
domain_file = "vars/domains"
email_file = "vars/emails"
ips = read_file(ip_file)
domains = read_file(domain_file)
emails = read_file(email_file)
return if ips.empty? && domains.empty? && emails.empty?
san_config = generate_san_config(ips, domains, emails)
puts san_config
end
if __FILE__ == $PROGRAM_NAME
main
end
View File
Whitespace-only changes.
+20
View File
@@ -0,0 +1,20 @@
[ req ]
default_md = sha256
prompt = no
req_extensions = req_ext
distinguished_name = req_distinguished_name
[ req_distinguished_name ]
commonName = ###CN##
countryName = ###COUNTRY###
stateOrProvinceName = ###STATE###
localityName = ###LOCALITY###
organizationName = ###ORGANIZATION###
[ req_ext ]
keyUsage=critical,digitalSignature,keyEncipherment
extendedKeyUsage=critical,serverAuth,clientAuth
subjectAltName = @alt_names
[ alt_names ]
###ALTERNATIVE_NAMES###
+20
View File
@@ -0,0 +1,20 @@
[ req ]
default_md = sha256
prompt = no
req_extensions = req_ext
distinguished_name = req_distinguished_name
[ req_distinguished_name ]
commonName = {{ cn }}
countryName = {{ country }}
stateOrProvinceName = {{ state }}
localityName = {{ locality }}
organizationName = {{ org }}
[ req_ext ]
keyUsage=critical,digitalSignature,keyEncipherment
extendedKeyUsage=critical,serverAuth,clientAuth
subjectAltName = @alt_names
[ alt_names ]
{{ subj_alternative }}
View File
Whitespace-only changes.
+1
View File
@@ -0,0 +1 @@
example.org
+1
View File
@@ -0,0 +1 @@
IL
+1
View File
@@ -0,0 +1 @@
3650
+2
View File
@@ -0,0 +1,2 @@
example.org
*.example.org
View File
Whitespace-only changes.
+3
View File
@@ -0,0 +1,3 @@
10.0.0.138
192.168.0.1
192.168.1.1
+1
View File
@@ -0,0 +1 @@
Karney Shomron
+1
View File
@@ -0,0 +1 @@
NgTech LTD
+1
View File
@@ -0,0 +1 @@
Center
+4
View File
@@ -0,0 +1,4 @@
ansible-playbook -i local-inventory --connection=local \
--extra-vars config_dir=/etc/app-traefik \
--extra-vars traefik_dashboard_hostname=traefik.ip.ngtech.home \
deploy-traefik.yml
+2
View File
@@ -0,0 +1,2 @@
[local]
127.0.0.1