Files

60 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
#
# This script adds 500 users in ldap, amd then enables them via the
# enabled_users group
#
add_user_file=/tmp/add_user.ldif
add_enabled_users_file=/tmp/enable_users.ldif
num_of_users=500
rm -rf ${add_user_file} ${add_enabled_users_file}
cat > ${add_enabled_users_file} << EOF
dn: cn=enabled_users,ou=groups,dc=test,dc=com
changetype: modify
add: member
EOF
for i in `seq 1 ${num_of_users}`
do
username=user${i}
uidnumber=$(( $i + 1002 ))
user="Test User ${i}"
cat >> ${add_user_file} << EOF
dn: cn=${username},ou=users,dc=test,dc=com
cn: ${username}
gidnumber: 500
givenname: ${user}
homedirectory: /home/users/${username}
objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: top
sn: ${user}
uid: ${username}
uidnumber: ${uidnumber}
userpassword: {MD5}HOMR4pM15t3gYd8WUxMG8g==
EOF
cat >> ${add_enabled_users_file} << EOF
member: cn=${username},ou=users,dc=test,dc=com
EOF
done
ldap_units=$(juju status --format json | jq -rc ".applications | to_entries[] | select(.value[\"charm-name\"] == \"ldap-test-fixture\") | .key")
# Add the ldap hostname into
#ldap_unit=$(juju status ldap-test-fixture --format=json 2>/dev/null | jq '.["applications"][]["units"] | keys[0]' | sed s/\"//g)
for ldap_unit in ${ldap_units}
do
# Configure slapd to give us some diags in syslog
juju scp ${add_user_file} ${add_to_group_file} ${add_enabled_users_file} ${ldap_unit}/0:/tmp/
juju ssh ${ldap_unit}/0 "sudo ldapadd -x -D \"cn=admin,dc=test,dc=com\" -w crapper -H ldap:// -f ${add_user_file}"
juju ssh ${ldap_unit}/0 "sudo ldapmodify -x -D \"cn=admin,dc=test,dc=com\" -w crapper -H ldap:// -f ${add_enabled_users_file}"
done