# Build and install a docker image for keystone. --- - name: Make persistent directories file: path: /srv/keystone/fernet-keys state: directory mode: 0777 - set_fact: docker_image: webhost12.service.rug.nl/hpc/openstack-keystone:latest - name: pull docker image docker_image: name: "{{ docker_image }}" tags: pull - name: install service file. template: src: templates/keystone.service dest: /etc/systemd/system/keystone.service mode: 644 owner: root group: root - name: install service file command: systemctl daemon-reload - name: Initialize db script: scripts/initialize_db.sh {{ hostvars[groups['databases'][0]]['ansible_default_ipv4']['address'] }} - name: keystone manage commands to setup db command: > /usr/bin/docker run --rm --add-host=mariadb:{{ hostvars[groups['databases'][0]]['ansible_default_ipv4']['address'] }} -v /srv/keystone/fernet-keys:/etc/keystone/fernet-keys -e "KEYSTONE_HOST={{ hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address'] }}" {{ docker_image }} keystone-manage {{ item }} with_items: - db_sync - fernet_setup --keystone-user keystone --keystone-group keystone - credential_setup --keystone-user keystone --keystone-group keystone - > bootstrap --bootstrap-password geheim --bootstrap-admin-url http://{{ hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address'] }}:35357/v3/ --bootstrap-internal-url http://{{ hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address'] }}:35357/v3/ --bootstrap-public-url http://{{ hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address'] }}:5000/v3/ --bootstrap-region-id RegionOne - name: make sure service is started systemd: name: keystone.service state: restarted - name: Create a domain, projects users and roles command: > /usr/bin/docker run --rm --add-host=mariadb:{{ hostvars[groups['databases'][0]]['ansible_default_ipv4']['address'] }} -v /srv/keystone/fernet-keys:/etc/keystone/fernet-keys -e "KEYSTONE_HOST={{ hostvars[groups['keystone'][0]]['ansible_default_ipv4']['address'] }}" {{ docker_image }} bash /etc/bootstrap.sh