---
- name: Ensure log directories exist
  vars:
    nginx_user: "{{ 'www-data' if is_debian else 'nginx' }}"
    is_debian: "{{ kolla_base_distro in ['debian', 'ubuntu'] }}"
  command: >
     docker exec bifrost_deploy
     bash -c 'mkdir -p /var/log/kolla/ironic &&
     chown ironic:ironic /var/log/kolla/ironic &&
     mkdir -p /var/log/kolla/ironic-inspector &&
     chown ironic:ironic /var/log/kolla/ironic-inspector &&
     mkdir -p /var/log/kolla/nginx &&
     chown {{ nginx_user }}:{{ nginx_user }} /var/log/kolla/nginx'

- name: Bootstrap bifrost (this may take several minutes)
  command: >
     docker exec bifrost_deploy
     bash -c '/bifrost/scripts/env-setup.sh && source /bifrost/env-vars
     && cp /etc/bifrost/rabbitmq-env.conf /etc/rabbitmq/rabbitmq-env.conf &&
     chown rabbitmq:rabbitmq /etc/rabbitmq/rabbitmq-env.conf &&
     ansible-playbook -vvvv -i /bifrost/playbooks/inventory/target
     /bifrost/playbooks/install.yaml -e @/etc/bifrost/bifrost.yml
     -e @/etc/bifrost/dib.yml -e  skip_package_install=true'

- name: Installing ssh keys
  command: >
     docker exec bifrost_deploy
     bash -c 'mkdir /root/.ssh ; mkdir /home/ironic/.ssh;
     cp -f /etc/bifrost/id_rsa /root/.ssh/id_rsa &&
     cp -f /etc/bifrost/id_rsa.pub /root/.ssh/id_rsa.pub &&
     cp -f /etc/bifrost/ssh_config /root/.ssh/config &&
     cp -f /etc/bifrost/id_rsa /home/ironic/.ssh/id_rsa &&
     cp -f /etc/bifrost/id_rsa.pub /home/ironic/.ssh/id_rsa.pub &&
     cp -f /etc/bifrost/ssh_config /home/ironic/.ssh/config &&
     chmod 600 /root/.ssh/id_rsa &&
     chmod 600 /root/.ssh/id_rsa.pub &&
     chmod 600 /root/.ssh/config &&
     chmod 600 /home/ironic/.ssh/id_rsa &&
     chmod 600 /home/ironic/.ssh/id_rsa.pub &&
     chmod 600 /home/ironic/.ssh/config &&
     chown ironic:ironic /home/ironic/.ssh/id_rsa &&
     chown ironic:ironic /home/ironic/.ssh/id_rsa.pub &&
     chown ironic:ironic /home/ironic/.ssh/config'

# Ironic creates hardlinks between the TFTP master image store and the
# HTTP root path when iPXE is enabled. With Docker volumes used for these
# locations we run into https://bugs.launchpad.net/ironic/+bug/1507894
# during deployment. If we use a directory under /httpboot to store the
# master images this issue is avoided.
- name: Configuring TFTP master image path
  command: |
    docker exec bifrost_deploy
    bash -c 'cat >> /etc/ironic/ironic.conf << EOF
    [pxe]
    tftp_master_path = /httpboot/master_images
    EOF
    systemctl restart ironic-conductor'
