============================================================= Use Ansible playbook to set up a local refstack instance ============================================================= These steps are meant for RefStack developers to help them with setting up a local refstack instance. In production RefStack server is managed by a set of playbooks and Ansible roles defined in `system-config `__ repository. Below instructions use these Ansible capabilities. The RefStack server runs on Ubuntu 20.04 LTS in the production. You can find an Ansible playbook in ``playbooks`` directory which semi-automates the process of running refstack server in a container. Execute the playbook by:: $ ansible-playbook playbooks/run-refstack-in-container.yaml In order to avoid setting certificates and https protocol (it's simpler and more than enough for a testing instance), edit ``/etc/apache2/sites-enabled/000-default.conf`` like following: * remove VirtualHost section for the port 80 and change the port of VirtualHost from 443 to 80 * Turn off the SSLEngine (`SSLEngine on -> SSLEngine off`) * Remove SSLCertificate lines and then restart the apache service so that it loads the new configuration:: $ systemctl restart apache2 How to edit refstack files within the container ----------------------------------------------- List the running container by:: $ docker container list You can enter the container by:: $ sudo docker exec -it /bin/bash If you wanna install new packages like f.e. vim, do the following:: $ apt update $ apt install vim Edit what's needed, backend is installed under ``/usr/local/lib/python3.7/site-packages/refstack/`` and frontend source files can be found at ``/refstack-ui`` After you made the changes, make pecan to reload the files served:: $ apt install procps # to install pkill command $ pkill pecan Killing pecan will kick you out of the container, however, pecan serves the edited files now and you may re-enter the container. Installing refstack with changes put for a review ------------------------------------------------- In order to do this, you will need to rebuild the refstack image built by the playbook. Go to the location where the playbook downloaded system-config, default in ``/tmp/refstack-docker`` and edit the refstack's Dockerfile:: $ cd /tmp/refstack-docker $ vim ./refstack-docker-files/Dockerfile Replace:: $ RUN git clone https://opendev.org/openinfra/refstack /tmp/src by:: $ RUN git clone https://opendev.org/openinfra/refstack.git /tmp/src \ && cd /tmp/src && git fetch "https://review.opendev.org/openinfra/refstack" \ refs/changes/37/ && git checkout -b \ change-- FETCH_HEAD Then rebuild the image:: $ docker image build -f Dockerfile -t . Edit the ``docker-compose.yaml`` stored (by default) in ``/etc/refstack-docker/docker-compose.yaml`` and change the the image (under `refstack-api`) to your image name and tag you set in the previous step. After then spin a new container using the new image:: $ cd /etc/refstack-docker $ docker-compose down # if refstack container is already running $ docker-compose up -d To see the server's logs use the following command:: $ docker container logs -f