61 lines
1.9 KiB
YAML
61 lines
1.9 KiB
YAML
services:
|
|
controller:
|
|
build:
|
|
context: ./ansible-controller
|
|
container_name: ansible-controller
|
|
volumes:
|
|
- ./playbooks:/ansible:ro
|
|
- ./ssh/id_rsa:/home/uansible/.ssh/id_rsa:ro
|
|
depends_on:
|
|
- ubuntu
|
|
- rocky
|
|
networks:
|
|
- ansible-net
|
|
command: >
|
|
bash -lc "chmod 600 /home/uansible/.ssh/id_rsa"
|
|
|
|
ubuntu:
|
|
image: ubuntu:22.04
|
|
container_name: ubuntu_node
|
|
networks:
|
|
- ansible-net
|
|
tty: true
|
|
command: >
|
|
bash -lc "apt-get update &&
|
|
apt-get install -y openssh-server sudo python3 &&
|
|
mkdir -p /var/run/sshd &&
|
|
useradd -ms /bin/bash uansible &&
|
|
echo 'uansible ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers &&
|
|
mkdir -p /home/uansible/.ssh &&
|
|
cat /ssh/id_rsa.pub >> /home/uansible/.ssh/authorized_keys &&
|
|
chmod 700 /home/uansible/.ssh &&
|
|
chmod 600 /home/uansible/.ssh/authorized_keys &&
|
|
chown -R uansible:uansible /home/uansible/.ssh &&
|
|
/usr/sbin/sshd -D"
|
|
volumes:
|
|
- ./ssh/id_rsa.pub:/ssh/id_rsa.pub:ro
|
|
|
|
rocky:
|
|
image: rockylinux:9
|
|
container_name: rocky_node
|
|
networks:
|
|
- ansible-net
|
|
tty: true
|
|
command: >
|
|
bash -lc "dnf install -y openssh-server sudo python3 &&
|
|
/usr/bin/ssh-keygen -A &&
|
|
useradd -ms /bin/bash uansible &&
|
|
echo 'uansible ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers &&
|
|
mkdir -p /home/uansible/.ssh &&
|
|
cat /ssh/id_rsa.pub >> /home/uansible/.ssh/authorized_keys &&
|
|
chmod 700 /home/uansible/.ssh &&
|
|
chmod 600 /home/uansible/.ssh/authorized_keys &&
|
|
chown -R uansible:uansible /home/uansible/.ssh &&
|
|
/usr/sbin/sshd -D"
|
|
volumes:
|
|
- ./ssh/id_rsa.pub:/ssh/id_rsa.pub:ro
|
|
|
|
networks:
|
|
ansible-net:
|
|
driver: bridge
|