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:
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:
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
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
$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:
- Install Ansible and configure your os-client-config like 1) in https://github.com/eumel8/ansible-otc/blob/master/CONNECT.md
Clone the git repo with OTC ansible roles
git clone -b dev https://github.com/eumel8/ansible-otc
- adjust tenant.ini
Fetch user-data file from https://raw.githubusercontent.com/eumel8/translation_checksite/aio/user-data. Adjust
admin_emaillike above. But beware: It's not possible to send out e-mail directly in OTC. You need to configure relayhost out-cloud.mms.t-systems-service.com in /etc/postfix/main.cf or doing this in user-data before install the postfix package:
debconf-set-selections <<< "postfix postfix/relayhost string out-cloud.mms.t-systems-service.com"
Run ansible to bootstrap the server
ansible-playbook -i hosts tenant_create.yml -e "ecs_name=i18n" -e "ecs_user_data=$(base64 -w 0 user-data )"
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:
Call haproxy playbook to install the new certificat and restart haproxy:
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