# cmc-sales ## Install ### Requirements Debian or Ubuntu OS. These instructions written for Debian 9.9 Assumed pre-work: Create a new VM with hostname newserver.cmctechnologies.com.au Configure DNS appropriately. cmctechnologies.com.au zones is currently managed in Google Cloud DNS on Karl's account: https://console.cloud.google.com/net-services/dns/zones/cmctechnologies?project=cmc-technologies&authuser=1&folder&organizationId Will need to migrate that to CMC's GSuite account at some point. 1. Install ansible on your workstation ``` apt-get install ansible ``` 2. Clone the playbooks ``` git clone git@gitlab.com:minimalist.software/cmc-playbooks.git ``` 3. Execute the playbooks The nginx config expects the site to be available at sales.cmctechnologies.com.au. You'll need to add the hostname to config/nginx-site, if this isn't sales.cmctechnologies.com.au ``` cd cmc-playbooks # Add the hostname of your new server to the inventory.txt ansible-playbook -i inventory.txt setup.yml ``` 4. SSH to the new server and configure gitlab-runner ``` ssh newserver.cmctechnologies.com.au sudo gitlab-runner register ``` 5. SSH to the new server as cmc user ``` ssh cmc@newserver.cmctechnologies.com.au ``` 6. Add the SSH key to the cmc-sales repo on gitlab as a deploy key https://gitlab.com/minimalist.software/cmc-sales/-/settings/repository ``` cmc@cmc:~$ cat .ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFIdoWVp2pGDb46ubW6jkfIpREMa/veD6xZVAtnj3WG1sX7NEUlQYq3RKbZ5CThlw6GKMSYoIsIqk7p6zSoJHGlJSLxoJ0edKflciMUFMTQrdm4T1USXsK+gd0C4DUCyVkYFOs37sy+JtziymnBTm7iOeVI3aMxwfoCOs6mNiD0ettjJT6WtVyy0ZTb6yU4uz7CHj1IGsvwsoKJWPGwJrZ/MfByNl6aJ8R/8zDwbtP06owKD4b3ZPgakM3nYRRoKzHZ/SClz50SXMKC4/nmFY9wLuuMhCWK+9x4/4VPSnxXESOlENMfUoa1IY4osAnZCtaFrWDyenJ+spZrNfgcscD ansible-generated on cmc ``` 6. Clone the cmc-sales repo ``` git clone git@gitlab.com:minimalist.software/cmc-sales.git ``` 7. As root on new server configure mySQL user cmc Note: get password from app/config/database.php (or set a new one and change it) ``` # mysql -u root CREATE USER 'cmc'@'localhost' IDENTIFIED BY 'password'; CREATE USER 'cmc'@'172.17.0.2' IDENTIFIED BY 'password'; CREATE database cmc; GRANT ALL PRIVILEGES ON cmc.* TO 'cmc'@'localhost'; GRANT ALL PRIVILEGES ON cmc.* TO 'cmc'@'172.17.0.2'; ``` 8. Get the latest backup from Google Drive In the shared google drive: eg. backups/database/backup_20191217_21001.sql.gz Copy up to the new server: ``` rsync backup_*.gz root@newserver:~/ ``` 9. Restore backup to cmc database ``` zcat backup_* | mysql -u cmc -p ``` 10. Redeploy from Gitlab https://gitlab.com/minimalist.software/cmc-sales/pipelines/new 11. You should have a new installation of cmc-sales.