Compare commits
64 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
7be79d05e9 | 9 hours ago |
|
|
ccaaf4b7fe | 9 hours ago |
|
|
073fc48afc | 10 hours ago |
|
|
e0de4d3b8e | 1 day ago |
|
|
64a581b2ac | 1 day ago |
|
|
823d1d8b47 | 1 day ago |
|
|
9b46882478 | 1 day ago |
|
|
b105877f4d | 1 day ago |
|
|
fb9efb24ca | 2 days ago |
|
|
9ce6a43329 | 2 days ago |
|
|
4af6a75278 | 2 days ago |
|
|
be3d496110 | 2 days ago |
|
|
699a8ebfb5 | 5 days ago |
|
|
abb77e77e1 | 7 days ago |
|
|
19938ec05a | 7 days ago |
|
|
8e6a93dd0f | 7 days ago |
|
|
682faf85fc | 7 days ago |
|
|
83b6cdb616 | 7 days ago |
|
|
f191f050bf | 7 days ago |
|
|
f556ec12b1 | 7 days ago |
|
|
a208daa461 | 1 week ago |
|
|
14e8334705 | 1 week ago |
|
|
1fe55f1c67 | 1 week ago |
|
|
e0103eb66c | 1 week ago |
|
|
e044893a88 | 1 week ago |
|
|
1cbd1777bc | 1 week ago |
|
|
0bafbd501c | 1 week ago |
|
|
f0a83168bf | 1 week ago |
|
|
15b2619fb2 | 1 week ago |
|
|
5c9abeda94 | 1 week ago |
|
|
006d497c25 | 1 week ago |
|
|
9609437262 | 1 week ago |
|
|
7eabcc61c1 | 1 week ago |
|
|
017de4c8e1 | 1 week ago |
|
|
7996a03a37 | 1 week ago |
|
|
5b6b076c4e | 1 week ago |
|
|
4ecafc564d | 1 week ago |
|
|
56dce28906 | 1 week ago |
|
|
ff973775ce | 1 week ago |
|
|
5ffdbb5999 | 1 week ago |
|
|
01e24f9ddf | 1 week ago |
|
|
22e7046cf6 | 1 week ago |
|
|
cc8a39864d | 1 week ago |
|
|
40fbfe58fc | 1 week ago |
|
|
b353980699 | 1 week ago |
|
|
3fe9b9bd87 | 1 week ago |
|
|
cfbb7f884e | 1 week ago |
|
|
a1b5d4941e | 1 week ago |
|
|
e32c90a63e | 1 week ago |
|
|
a143787c02 | 1 week ago |
|
|
bcc726d3b7 | 1 week ago |
|
|
780f8af1a4 | 1 week ago |
|
|
d1c4217db0 | 1 week ago |
|
|
09b972e96e | 1 week ago |
|
|
509c572682 | 2 weeks ago |
|
|
c9eb6e54e2 | 2 weeks ago |
|
|
4a442f503e | 2 weeks ago |
|
|
e52132c89b | 2 weeks ago |
|
|
f966b3e5c6 | 2 weeks ago |
|
|
7c9c38325d | 2 weeks ago |
|
|
5da56f577c | 2 weeks ago |
|
|
734047e1cc | 2 weeks ago |
|
|
8b29846990 | 2 weeks ago |
|
|
61a7fa1fee | 2 weeks ago |
@ -0,0 +1,8 @@
|
||||
pkg_mgr_python_interpreter: python3
|
||||
|
||||
# Alma Linux 9, RHEL 9, etc. lack a virtualenv package
|
||||
virtualenv_create_argv:
|
||||
- "{{ virtualenv_python }}"
|
||||
- -m
|
||||
- venv
|
||||
- "{{ virtualenv_path }}"
|
||||
@ -0,0 +1,2 @@
|
||||
become_doas_available: true
|
||||
pkg_mgr_python_interpreter: python3
|
||||
@ -1,4 +1,6 @@
|
||||
package_manager_repos:
|
||||
- dest: /etc/apt/sources.list
|
||||
content: |
|
||||
deb http://archive.debian.org/debian stretch main contrib non-free
|
||||
deb http://archive.debian.org/debian/ stretch main contrib non-free
|
||||
deb http://archive.debian.org/debian/ stretch-proposed-updates main contrib non-free
|
||||
deb http://archive.debian.org/debian-security stretch/updates main contrib non-free
|
||||
|
||||
@ -0,0 +1,2 @@
|
||||
become_doas_available: true
|
||||
pkg_mgr_python_interpreter: python3
|
||||
@ -0,0 +1,2 @@
|
||||
become_doas_available: true
|
||||
pkg_mgr_python_interpreter: python3
|
||||
Binary file not shown.
@ -0,0 +1,5 @@
|
||||
- name: Setup container host
|
||||
hosts: localhost
|
||||
become: true
|
||||
roles:
|
||||
- role: container_host
|
||||
@ -1,12 +1,17 @@
|
||||
|
||||
[defaults]
|
||||
any_errors_fatal = true
|
||||
# Ansible >= 6 (ansible-core >= 2.13)
|
||||
callback_result_format = yaml
|
||||
deprecation_warnings = false
|
||||
duplicate_dict_key = error
|
||||
inventory = hosts.ini
|
||||
strategy_plugins = ../../ansible_mitogen/plugins/strategy
|
||||
retry_files_enabled = false
|
||||
display_args_to_stdout = True
|
||||
no_target_syslog = True
|
||||
host_key_checking = False
|
||||
stdout_callback = yaml
|
||||
|
||||
[inventory]
|
||||
unparsed_is_fatal = true
|
||||
any_unparsed_is_failed = true
|
||||
host_pattern_mismatch = error
|
||||
unparsed_is_failed = true
|
||||
|
||||
@ -0,0 +1,33 @@
|
||||
DefaultRuntimeDir ${XDG_RUNTIME_DIR}
|
||||
PidFile ${XDG_RUNTIME_DIR}/apache2.pid
|
||||
|
||||
LoadModule alias_module /usr/lib/apache2/modules/mod_alias.so
|
||||
LoadModule authz_core_module /usr/lib/apache2/modules/mod_authz_core.so
|
||||
LoadModule mpm_event_module /usr/lib/apache2/modules/mod_mpm_event.so
|
||||
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
|
||||
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
|
||||
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
|
||||
LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
|
||||
|
||||
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
|
||||
|
||||
KeepAlive On
|
||||
Listen 8090
|
||||
|
||||
<Directory />
|
||||
Require all denied
|
||||
AllowOverride None
|
||||
</Directory>
|
||||
|
||||
<VirtualHost *:8090>
|
||||
ServerName centos-vault-proxy
|
||||
SSLProxyEngine On
|
||||
CustomLog logs/access.log vhost_combined
|
||||
ProxyPass "/" "https://vault.centos.org/"
|
||||
ProxyPassReverse "https://vault.centos.org/" "/"
|
||||
RedirectMatch "^/(.*)" "http://centos-vault-proxy:8090/$1"
|
||||
</VirtualHost>
|
||||
|
||||
# /usr/sbin/apache2 -d . -f apache_proxy.conf -D FOREGROUND
|
||||
|
||||
# vim: syntax=apache
|
||||
@ -1,16 +1,18 @@
|
||||
ansible_version_major_minor: "{{ ansible_version.major }}.{{ ansible_version.minor }}"
|
||||
|
||||
common_packages:
|
||||
- acl
|
||||
- openssh-server
|
||||
- rsync
|
||||
- strace
|
||||
- sudo
|
||||
|
||||
container_image_name: "{{ container_registry }}/{{ inventory_hostname }}-test"
|
||||
container_registry: public.ecr.aws/n5z0e8q9
|
||||
container_registry: ghcr.io/mitogen-hq
|
||||
|
||||
sudo_group:
|
||||
MacOSX: admin
|
||||
Debian: sudo
|
||||
Ubuntu: sudo
|
||||
CentOS: wheel
|
||||
AlmaLinux: wheel
|
||||
|
||||
@ -0,0 +1,6 @@
|
||||
bootstrap_packages: [python3]
|
||||
docker_base: almalinux:9
|
||||
|
||||
packages:
|
||||
- perl-JSON
|
||||
- procps-ng
|
||||
@ -1,6 +1,36 @@
|
||||
bootstrap_packages: [python-simplejson]
|
||||
|
||||
docker_base: astj/centos5-vault
|
||||
docker_base: centos:5
|
||||
|
||||
packages:
|
||||
- perl
|
||||
package_manager_repos:
|
||||
- dest: /etc/yum.repos.d/CentOS-Base.repo
|
||||
content: |
|
||||
[base]
|
||||
name=CentOS-$releasever - Base
|
||||
baseurl=http://centos-vault-proxy:8090/5.11/os/$basearch/
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
|
||||
|
||||
[updates]
|
||||
name=CentOS-$releasever - Updates
|
||||
baseurl=http://centos-vault-proxy:8090/5.11/updates/$basearch/
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
|
||||
|
||||
[extras]
|
||||
name=CentOS-$releasever - Extras
|
||||
baseurl=http://centos-vault-proxy:8090/5.11/extras/$basearch/
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
|
||||
|
||||
- dest: /etc/yum.repos.d/libselinux.repo
|
||||
content: |
|
||||
[libselinux]
|
||||
name=CentOS-$releasever - libselinux
|
||||
baseurl=http://centos-vault-proxy:8090/5.11/centosplus/$basearch/
|
||||
gpgcheck=1
|
||||
enabled=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
|
||||
includepkgs=libselinux*
|
||||
|
||||
@ -1,6 +1,27 @@
|
||||
bootstrap_packages: [python]
|
||||
|
||||
docker_base: moreati/centos6-vault
|
||||
docker_base: centos:6
|
||||
|
||||
packages:
|
||||
- perl-JSON
|
||||
|
||||
package_manager_repos:
|
||||
- dest: /etc/yum.repos.d/CentOS-Base.repo
|
||||
content: |
|
||||
[base]
|
||||
name=CentOS-$releasever - Base
|
||||
baseurl=http://vault.centos.org/6.10/os/$basearch/
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
|
||||
|
||||
[updates]
|
||||
name=CentOS-$releasever - Updates
|
||||
baseurl=http://vault.centos.org/6.10/updates/$basearch/
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
|
||||
|
||||
[extras]
|
||||
name=CentOS-$releasever - Extras
|
||||
baseurl=http://vault.centos.org/6.10/extras/$basearch/
|
||||
gpgcheck=1
|
||||
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
|
||||
|
||||
@ -1,11 +1,18 @@
|
||||
bootstrap_packages: [python3, python3-apt]
|
||||
|
||||
docker_base: debian:bullseye
|
||||
docker_base: debian:11
|
||||
|
||||
packages:
|
||||
- doas
|
||||
- libjson-perl
|
||||
- locales
|
||||
- python-is-python3
|
||||
- python2
|
||||
- python3-virtualenv
|
||||
- virtualenv
|
||||
|
||||
package_manager_keys:
|
||||
- src: debian-archive-bullseye-automatic.gpg # Debian 11
|
||||
dest: /etc/apt/trusted.gpg.d/
|
||||
- src: debian-archive-bookworm-automatic.gpg # Debian 12
|
||||
dest: /etc/apt/trusted.gpg.d/
|
||||
|
||||
@ -0,0 +1,8 @@
|
||||
bootstrap_packages: [python3, python3-apt]
|
||||
docker_base: debian:12
|
||||
|
||||
packages:
|
||||
- libjson-perl
|
||||
- locales
|
||||
- opendoas
|
||||
- virtualenv
|
||||
@ -0,0 +1,10 @@
|
||||
bootstrap_packages: [python3, python3-apt]
|
||||
docker_base: ubuntu:22.04
|
||||
|
||||
packages:
|
||||
- doas
|
||||
- libjson-perl
|
||||
- locales
|
||||
- python2
|
||||
- python3-virtualenv
|
||||
- virtualenv
|
||||
@ -0,0 +1,9 @@
|
||||
bootstrap_packages: [python3, python3-apt]
|
||||
docker_base: ubuntu:24.04
|
||||
|
||||
packages:
|
||||
- libjson-perl
|
||||
- locales
|
||||
- opendoas
|
||||
- python3-virtualenv
|
||||
- virtualenv
|
||||
@ -0,0 +1,2 @@
|
||||
bootstrap_packages: []
|
||||
package_manager_repos: []
|
||||
@ -0,0 +1,3 @@
|
||||
- name: Bootstrap
|
||||
raw: "{{ lookup('template', 'bootstrap.sh.j2') }}"
|
||||
changed_when: true
|
||||
@ -0,0 +1,21 @@
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
|
||||
{% for item in package_manager_repos %}
|
||||
cat << "EOF" > "{{ item.dest }}"
|
||||
{{ item.content }}
|
||||
EOF
|
||||
{% endfor %}
|
||||
|
||||
{% if bootstrap_packages %}
|
||||
if command -v apt-get; then
|
||||
apt-get -y update
|
||||
apt-get -y --no-install-recommends install {{ bootstrap_packages | join(' ') }}
|
||||
elif command -v dnf; then
|
||||
dnf -y install {{ bootstrap_packages | join(' ') }}
|
||||
elif command -v yum; then
|
||||
yum -y install {{ bootstrap_packages | join(' ') }}
|
||||
else
|
||||
exit 42
|
||||
fi
|
||||
{% endif %}
|
||||
@ -0,0 +1,6 @@
|
||||
- name: Update GRUB
|
||||
command: update-grub
|
||||
changed_when: true
|
||||
|
||||
- name: Reboot
|
||||
reboot:
|
||||
@ -0,0 +1,27 @@
|
||||
# > If running `docker run --rm -it centos:centos6.7 bash` immediately exits
|
||||
# > with status code 139, check to see if your system has disabled vsyscall:
|
||||
# > ...
|
||||
# > If you do not see a vsyscall mapping, and you need to run a CentOS 6
|
||||
# > container, try adding vsyscall=emulated to the kernel options.
|
||||
# > -- https://hub.docker.com/_/centos
|
||||
|
||||
- name: Check vsyscall enabled
|
||||
command:
|
||||
cmd: grep -c vsyscall /proc/self/maps
|
||||
register: grep_self_maps_result
|
||||
changed_when: false
|
||||
check_mode: false
|
||||
failed_when:
|
||||
# 0 -> match, 1 -> no match, 2 -> error
|
||||
- grep_self_maps_result.rc not in [0, 1]
|
||||
|
||||
- name: Enable vsyscall
|
||||
lineinfile:
|
||||
path: /etc/default/grub
|
||||
regexp: '^GRUB_CMDLINE_LINUX_DEFAULT.+'
|
||||
line: GRUB_CMDLINE_LINUX_DEFAULT="quiet vsyscall=emulate"
|
||||
when:
|
||||
- grep_self_maps_result.rc != 0
|
||||
notify:
|
||||
- Update GRUB
|
||||
- Reboot
|
||||
@ -0,0 +1,14 @@
|
||||
common_packages: []
|
||||
packages: []
|
||||
|
||||
packages_clean_command:
|
||||
apt: apt-get clean
|
||||
dnf: dnf clean all
|
||||
yum: yum clean all
|
||||
|
||||
packages_cleanup_directories:
|
||||
apt:
|
||||
- /var/cache/apt
|
||||
- /var/lib/apt/lists
|
||||
dnf: []
|
||||
yum: []
|
||||
@ -0,0 +1,35 @@
|
||||
- name: Ensure requisite apt packages are installed
|
||||
apt:
|
||||
name: "{{ common_packages + packages }}"
|
||||
state: present
|
||||
install_recommends: false
|
||||
update_cache: true
|
||||
when:
|
||||
- ansible_pkg_mgr == 'apt'
|
||||
|
||||
- name: Ensure requisite yum packages are installed
|
||||
yum:
|
||||
name: "{{ common_packages + packages }}"
|
||||
state: present
|
||||
update_cache: true
|
||||
when:
|
||||
- ansible_pkg_mgr == 'yum'
|
||||
|
||||
- name: Ensure requisite dnf packages are installed
|
||||
dnf:
|
||||
name: "{{ common_packages + packages }}"
|
||||
state: present
|
||||
update_cache: true
|
||||
when:
|
||||
- ansible_pkg_mgr == 'dnf'
|
||||
|
||||
- name: Clean up package cache
|
||||
command:
|
||||
cmd: "{{ packages_clean_command[ansible_pkg_mgr] }}"
|
||||
changed_when: true
|
||||
|
||||
- name: Clean up package directories
|
||||
shell:
|
||||
rm -rf {{ item }}/*
|
||||
with_items: "{{ packages_cleanup_directories }}"
|
||||
changed_when: true
|
||||
@ -1,2 +1,4 @@
|
||||
- name: Restart sshd
|
||||
meta: noop
|
||||
command: "true"
|
||||
changed_when: false
|
||||
check_mode: false
|
||||
|
||||
@ -1,6 +1,17 @@
|
||||
#!/usr/bin/env ansible-playbook
|
||||
|
||||
- include_playbook: _container_create.yml
|
||||
- include_playbook: _container_setup.yml
|
||||
- include_playbook: _user_accounts.yml
|
||||
- include_playbook: _container_finalize.yml
|
||||
- name: Get base images
|
||||
hosts: all
|
||||
# strategy: mitogen_free
|
||||
gather_facts: false
|
||||
tasks:
|
||||
- name: Fetch container base images
|
||||
docker_image:
|
||||
name: "{{ docker_base }}"
|
||||
source: pull # Added in Ansible 2.8, required circa 2.12
|
||||
delegate_to: localhost
|
||||
|
||||
- import_playbook: _container_create.yml
|
||||
- import_playbook: _container_setup.yml
|
||||
- import_playbook: _user_accounts.yml
|
||||
- import_playbook: _container_finalize.yml
|
||||
|
||||
@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env ansible-playbook
|
||||
|
||||
- name: Get base images
|
||||
hosts: all
|
||||
gather_facts: false
|
||||
tasks:
|
||||
- name: Fetch container base images
|
||||
docker_image:
|
||||
name: "{{ docker_base }}"
|
||||
delegate_to: localhost
|
||||
|
||||
- include: _container_create.yml
|
||||
- include: _container_setup.yml
|
||||
- include: _user_accounts.yml
|
||||
- include: _container_finalize.yml
|
||||
Loading…
Reference in New Issue