Long time ago (2015) I’ve started my OpenStack contributing process in OpenStack I18n team. The team is responsible for translating OpenStack dashboard, tools and documentation in other languages. One thing from the wishlist of the team was the Translation Check Site. And that was the biggest challenge for the team.
The Translation Check Site is a tool which makes the translation strings on the Horizon dashboard visible. Sounds simple? At the and: it is! All things what you need is OpenStack Ansible (OSA) and a virtual machine with at least 16 GB RAM and 70 GB disk space. Clone the repo and start the installation of OSA with gate-check-extensions:
git clone https://github.com/openstack/openstack-ansible /opt/openstack-ansible
cd /opt/openstack-ansible
./scripts/gate-check-commit.sh translations
It takes up to 90-120 minutes to install the whole stack. Maybe as you know, OSA installs all services in LXC container, so you have a modular system simply to extend.
If the installation is finished now comes the magic of the installation! You need a cronjob for automation:
01,31 * * * * cd /opt/openstack-ansible/playbooks; openstack-ansible os-horizon-install.yml -e "horizon_translations_update=True" --tags "horizon-config"
You can execute the command from command line. The ansible playbook will fetch the newest translation files from I18n translation server (Zanata), compile the files, restart the web server and you should be able to see your last changes from the translation server online. You can review your translation, editing again, call the command above or wait 30 minutes for a new fetch.
Of course, you need login data for the dashboard on your machine. OSA provides an autogenerated password. You can found it in /etc/openstack_deploy/user_secrets.yml
keystone_auth_admin_password: 8a8bb99309b8385603d3cd911d45fd2204df3bc2522e92a4ec9431f5
In the cloud we want to automate all the things. Here is a shell script to install SOA via puppet. It’s developed for a system in a serverless puppet infrasructure: Here is also an user-data file if you want to boostrap a virtual machine in this way: https://github.com/eumel8/translation_checksite/blob/aio/user-data
Adjust $admin_email
. The dashboard admin password would you receive on this address.
If you want to use Open Telekom Cloud as cloud provider here are a complete solution:
Finish!
Maybe you want to install your own ssl certificate in your OSA server. In this case you have cert file, key file and ca cert file with the corespondending data. Take the files on the OSA server and provide the paths in a yml file:
/home/ubuntu/cert.yml
haproxy_user_ssl_cert: /etc/ssl/certs/server.crt
haproxy_user_ssl_key: /etc/ssl/certs/private/server.key
haproxy_user_ssl_ca_cert: /etc/ssl/certs/ca.crt
Call haproxy playbook to install the new certificat and restart haproxy:
cd /opt/openstack-ansible/playbooks
ansible-playbook haproxy-install.yml -e @/home/ubuntu/cert.yml
That’s it. PoC files are available on https://github.com/eumel8/translation_checksite/tree/aio Thanks to @andymccrae, Rob Cresswell and all the teams who worked together: #WeAreOpenStack