Skip to content

Commit e262f01

Browse files
authored
Merge pull request #6 from hellofresh/feature-centos-support
PTII-273 Add centos support and tests
2 parents 831139d + 1e5b779 commit e262f01

File tree

12 files changed

+188
-9
lines changed

12 files changed

+188
-9
lines changed

.travis.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
11
---
22
language: python
3+
34
services:
45
- docker
6+
7+
branches:
8+
only:
9+
- master
10+
511
install:
612
- pip install molecule
713
- pip install docker-py
14+
815
script:
916
- molecule test

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ You can override variables in your group_vars
2020
- `sssd_ldap_default_bind_dn: cn=manager,dc=example,dc=org`
2121
- `sssd_ldap_default_authtok: bind_password`
2222
- `sssd_ldap_user_ssh_public_key: sshPublicKey`
23-
23+
- `sssd_ldap_override_gid: 500`
2424

2525
Dependencies
2626
------------
@@ -30,7 +30,7 @@ None
3030
Example Playbook
3131
----------------
3232

33-
Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too:
33+
An example of how to use the role:
3434

3535
- hosts: servers
3636
roles:

molecule/default/molecule.yml

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,43 @@ driver:
66
lint:
77
name: yamllint
88
platforms:
9-
- name: instance
10-
image: ubuntu:xenial
9+
- name: ubuntu-xenial
10+
image: solita/ubuntu-systemd:latest
11+
command: /sbin/init
12+
privileged: True
13+
capabilities:
14+
- SYS_ADMIN
15+
volumes:
16+
- /sys/fs/cgroup:/sys/fs/cgroup:ro
17+
- name: centos-7
18+
image: centos/systemd
19+
command: /usr/sbin/init
20+
privileged: True
21+
volumes:
22+
- /sys/fs/cgroup:/sys/fs/cgroup:ro
23+
capabilities:
24+
- SYS_ADMIN
1125
provisioner:
1226
name: ansible
27+
inventory:
28+
group_vars:
29+
all:
30+
sssd_ldap_search_base: dc=example,dc=com
31+
sssd_ldap_uri: ldap://localhost
32+
sssd_ldap_default_bind_dn: cn=Manager,dc=example,dc=com
33+
sssd_ldap_default_authtok: s3cr3t
34+
sssd_ldap_user_ssh_public_key: sshPublicKey
35+
sssd_ldap_override_gid: 1
1336
lint:
1437
name: ansible-lint
1538
options:
16-
x: ANSIBLE0013
39+
x:
40+
- ANSIBLE0013
1741
scenario:
1842
name: default
1943
verifier:
2044
name: testinfra
45+
options:
46+
v: true
2147
lint:
2248
name: flake8

molecule/default/prepare.yml

Lines changed: 59 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,62 @@
11
---
22
- name: Prepare
33
hosts: all
4-
gather_facts: false
5-
tasks: []
4+
gather_facts: true
5+
become: true
6+
7+
vars:
8+
openssh_clients:
9+
Debian: openssh-client
10+
RedHat: openssh-clients
11+
12+
roles:
13+
- role: openldap
14+
openldap_server_domain_name: example.com
15+
openldap_server_rootpw: s3cr3t
16+
openldap_server_enable_ssl: false
17+
18+
tasks:
19+
- name: install python-ldap
20+
package:
21+
name: python-ldap
22+
- name: Make sure we have an test user
23+
ldap_entry:
24+
bind_dn: cn=Manager,dc=example,dc=com
25+
bind_pw: s3cr3t
26+
dn: cn=test,dc=example,dc=com
27+
objectClass:
28+
- top
29+
- person
30+
- posixAccount
31+
- inetOrgPerson
32+
- organizationalPerson
33+
- ldapPublicKey
34+
attributes:
35+
uid: test
36+
uidNumber: 5000
37+
givenName: Test
38+
sn: Test
39+
cn: Test
40+
loginShell: /bin/bash
41+
homeDirectory: /home/test
42+
sshPublicKey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYaGyXcqdQUIxjPr3eqXro9X/2LrLH2o+OrFeGRB2u3WxigroynxD8vLjtG6qyYYtgnvR9+2usVhbNNS3QdF3G5wenCR4Zpk6VIYofQrBYmrzJG9Bsig3G4SgnGF2x4KimupjCdD4+1S9OMF/4GzQZdaLl2HkSTYE+6430FbSD8i3IdpbRI526X8q4njrTHgIYUtAVFTPSudZ/3fIzFpfNlWq5wy1CXCGc7aqmHECQzareeoAM5NfgrUkw7TFrKP/zelDkqpJ6pwYTWg2VZYmoXmh2o+ttWFatGzJPUoeU/r+SjMn4YvMunT+L6NIrbJQkXwB9i3upMx2bQcuPl0cl test-key
43+
gidNumber: 5000
44+
- name: create /root/.ssh dir
45+
file:
46+
path: /root/.ssh
47+
state: directory
48+
mode: 0755
49+
- name: copy ssh key
50+
copy:
51+
src: test.key
52+
dest: /root/.ssh/id_rsa
53+
mode: 0600
54+
owner: root
55+
group: root
56+
- name: enable login
57+
file:
58+
path: /run/nologin
59+
state: absent
60+
- name: install ssh client
61+
package:
62+
name: "{{ openssh_clients[ansible_os_family] }}"

molecule/default/requirements.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
- src: git+https://github.com/antonu17/openldap_server.git
3+
version: master
4+
name: openldap

molecule/default/test.key

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
-----BEGIN RSA PRIVATE KEY-----
2+
MIIEpAIBAAKCAQEA2Ghsl3KnUFCMYz693ql66PV/9i6yx9qPjqxXhkQdrt1sYoK6
3+
Mp8Q/Ly47RuqsmGLYJ70fftrrFYWzTUt0HRdxucHpwkeGaZOlSGKH0KwWJq8yRvQ
4+
bIoNxuEoJxhdseCoprqYwnQ+PtUvTjBf+Bs0GXWi5dh5Ek2BPuuN9BW0g/ItyHaW
5+
0SOdul/KuJ460x4CGFLQFRUz0rnWf93yMxaXzZVqucMtQlwhnO2qphxAkM2q3nqA
6+
DOTX4K1JMO0xayj/83pQ5KqSeqcGE1oNlWWJqF5odqPrbVhWrRsyT1KHlP6/kozJ
7+
+GLzLp0/i+jSK2yUJF8AfYt7qTMdm0HLj5dHJQIDAQABAoIBABKjC5cPXLFh/nUd
8+
liRy3A7r9ZUx+FuVyv8ygGcjvpqsnwTs1TQ+1qutZQ+mblDmbaZoig2/dUpmL5iE
9+
l+l33AuhIduUwW7cD7BwLwD6MU2wJcn8BzsRuJYEFf0n8Am9m0igkT9N2351xZkq
10+
OVmYnigDJYA94E9fNV5B0vvOUrl6HT3aORqePvWeQKRaeBpeyVmjXsi3A/92G6tc
11+
JZh/y19HVuyrQiiQhrVN3w8OVxnX8heMD68BPi9njqK3RTiUGtLrlMAcbdKGkfIL
12+
MsQei9XlFdSce4ROFxJ38/1bRJdy4hYcYRPTEkrKpAaQQmE7VsSOmzTIz3Qer6kT
13+
7zjggZECgYEA9CIvlCAPmK8RT6O1oSD4XNqhAGNlUs6MABrf4q8vKhwHSfgZSZNF
14+
zL/cX85EozzjnSgmJzYC0abM/L2LvZTlI93fSpgN5FwXZEdh/ab4XTr8gmxpQDZC
15+
HPN/JfdkZj18HJG47a+8JXLGjC5W/nMupAc6n8jH3CLpE5O3U/HJ758CgYEA4u09
16+
zgnT5x02nFjN6MMSEEQxhR8wqb+vDmPpg/cMzyoVjrQjgHLpXpPsoG/Rh4wziUpH
17+
roR4jv8DZ2GDkIKQoeOaUFZbGHxX6UDCUl3EFNI3dL/rMioh3YhN687NM+f0JK6G
18+
+GV+ESRNDDZeE4QX1lryrR3P8x9SCDnQ2V8KArsCgYBRb1nZmjw5nSQ0IZLDlcDj
19+
EFamT4GL9rQCkPRfpDoiXMkdpnGg9kxROSqklqSUown18V+QstaL4oz8Panwaktp
20+
BGiodEImC4YOADWyq9CrILL8Ond9YNv61kpyeqx14kqVKRK7zmP/ReLu/cItDHTh
21+
aDvo8sugJdEDo8GCceP/VwKBgQCI2tL/Q2YMZ83blKL50Us/jCDhS+IpPXTxlMfr
22+
0j5jYdoGahVPDf44D7YRO959hMw/7BA266VZd+oxmtmheVyIhZ82/B2MMtFB1tBa
23+
pDnw5KaVPnk1k7tAw0dbAyk2OJlA1hCIFY1mASKGTvOFiZBmsgrQ5L3YvfbXBycx
24+
MOP0qQKBgQC+flfm7v0C4nlBvygKNOzqfcN3lX4hdxdBbkJPsz3RXKXJpKu//K5u
25+
hGvEcF1qcgdB5zgtUCU9OkQxNPijN8TU2qwtL4CnUy3J4ji0HDST1FrV4wCskM5N
26+
584tSeZqfYENG1o30RF1DX5yS0QFj/wYENXqAcrWQruwdZ7B0B0DZw==
27+
-----END RSA PRIVATE KEY-----

molecule/default/test.key.pub

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYaGyXcqdQUIxjPr3eqXro9X/2LrLH2o+OrFeGRB2u3WxigroynxD8vLjtG6qyYYtgnvR9+2usVhbNNS3QdF3G5wenCR4Zpk6VIYofQrBYmrzJG9Bsig3G4SgnGF2x4KimupjCdD4+1S9OMF/4GzQZdaLl2HkSTYE+6430FbSD8i3IdpbRI526X8q4njrTHgIYUtAVFTPSudZ/3fIzFpfNlWq5wy1CXCGc7aqmHECQzareeoAM5NfgrUkw7TFrKP/zelDkqpJ6pwYTWg2VZYmoXmh2o+ttWFatGzJPUoeU/r+SjMn4YvMunT+L6NIrbJQkXwB9i3upMx2bQcuPl0cl test-key

molecule/default/tests/test_default.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,36 @@ def test_hosts_file(host):
1212
assert f.exists
1313
assert f.user == 'root'
1414
assert f.group == 'root'
15+
16+
17+
def test_sssd_ldap_user(host):
18+
user = host.user('test')
19+
assert user.uid == 5000
20+
assert user.gid == 1
21+
22+
23+
def test_sssd_service_state(host):
24+
assert host.service('sssd').is_enabled
25+
assert host.service('sssd').is_running
26+
27+
28+
def test_sshd_service_state(host):
29+
assert host.service('sshd').is_enabled
30+
assert host.service('sshd').is_running
31+
32+
33+
def test_ssh_access(host):
34+
host.run_test(
35+
'/usr/bin/ssh '
36+
'-o StrictHostKeyChecking=no '
37+
'-o BatchMode=yes '
38+
'-T '
39+
'-i /root/.ssh/id_rsa '
40+
'-l test '
41+
'localhost '
42+
'exit'
43+
)
44+
45+
46+
def test_homedir_created(host):
47+
assert host.file('/home/test').is_directory

tasks/pamd.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,8 @@
66
when: ansible_os_family == "Debian"
77
notify:
88
- run pam auth update
9+
10+
- name: pamd | add pam_mkhomedir for RedHat machines
11+
command: authconfig --enablemkhomedir --update
12+
changed_when: false
13+
when: ansible_os_family == "RedHat"

tasks/sshd.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,14 @@
66
notify:
77
- restart sshd
88

9-
- name: sssd_ldap | sshd | make authorized keys lookup script run as nobody
9+
- name: sshd | make authorized keys lookup script run as nobody
1010
lineinfile:
1111
path: /etc/ssh/sshd_config
1212
line: 'AuthorizedKeysCommandUser nobody'
1313
notify:
1414
- restart sshd
15+
16+
- name: sshd | ensure sshd service is enabled
17+
service:
18+
name: sshd
19+
enabled: true

0 commit comments

Comments
 (0)