devops:vagrant
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
devops:vagrant [2022/12/18 19:40] – [Setting up Rsync folder-synch on Windows] skipidar | devops:vagrant [2024/06/22 16:41] (current) – [Error: Authentication failure. Retrying...] skipidar | ||
---|---|---|---|
Line 291: | Line 291: | ||
===== Setting up Rsync folder-synch on Windows ===== | ===== Setting up Rsync folder-synch on Windows ===== | ||
- | == Why == | + | === Why === |
When **developing code** in an **IDE on Windows-Host** \\ | When **developing code** in an **IDE on Windows-Host** \\ | ||
I would like to have the possibility | I would like to have the possibility | ||
Line 297: | Line 297: | ||
e.g. on Kubernetes, integrated with other containers. | e.g. on Kubernetes, integrated with other containers. | ||
+ | **File-system watcher:** | ||
+ | Requirement: | ||
- | == How == | + | On the Guest - the changes of " |
+ | and the code-project rebuilt. \\ | ||
- | - On Guest. Install Cygwin, to get Rsync on Windows | + | Also changes in the **IDE on Windows-Host** \\ |
- | - On Guest. Add the "code-project-folder" | + | must trigger changes on the file-system in "Guest-VM" |
- | | + | |
- | - On Guest. Run automatic sync command in one cmd-shell | + | |
- | - Ssh into Vagrant. Run continuos build in one shell | + | |
- | - Configure the Spring Boot application to hot-deploy changes | + | |
- | - Ssh into Vagrant. Run application like Spring Boot application | + | |
+ | Problem: | ||
- | Now every | + | When sharing a code-project via **Oracle-Virtualbox shared-folders** \\ |
+ | and files where changed on **IDE on Windows-Host** \\ | ||
+ | unfortunately, | ||
+ | |||
+ | When sharing a code-project via **Rsync** | ||
+ | |||
+ | |||
+ | === How === | ||
+ | An example of setting up the environment | ||
+ | |||
+ | * On Guest. Install Cygwin, to get Rsync on Windows | ||
+ | * On Guest. Add the " | ||
+ | * | ||
+ | * On Guest. Run automatic sync command in one cmd-shell | ||
+ | * Ssh into Vagrant. Run continuos build in one shell | ||
+ | * | ||
+ | * Ssh into Vagrant. Run application like Spring Boot application | ||
+ | |||
+ | |||
+ | == On Guest. Install Cygwin, to get Rsync on Windows == | ||
+ | |||
+ | < | ||
+ | winget install -e --id Cygwin.Cygwin | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==On Guest. Add the " | ||
+ | |||
+ | < | ||
+ | cd " | ||
+ | mkdir " | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==Configure Vagrantfile to sync " | ||
+ | Sync folder `spring-boot-code-project-folder`. | ||
+ | Based on `checksum`, not timestamp. | ||
+ | |||
+ | Vagrantfile | ||
+ | <sxh ruby> | ||
+ | ... | ||
+ | config.vm.synced_folder " | ||
+ | type: " | ||
+ | rsync__auto: | ||
+ | rsync__args: | ||
+ | id: " | ||
+ | |||
+ | .. | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==On Guest. Run automatic sync command in one cmd-shell== | ||
+ | |||
+ | Open a new [[https:// | ||
+ | <sxh shell> | ||
+ | vagrant rsync-auto | ||
+ | </ | ||
+ | |||
+ | {{https:// | ||
+ | |||
+ | |||
+ | ==Ssh into Vagrant. Run continuos build in one shell== | ||
+ | |||
+ | See https:// | ||
+ | |||
+ | Skip the tests.\\ | ||
+ | Dont use the daemon. | ||
+ | |||
+ | <sxh shell> | ||
+ | vagrant ssh | ||
+ | cd "/ | ||
+ | ./gradlew build -xtest --no-daemon --continuous | ||
+ | </ | ||
+ | |||
+ | |||
+ | == Configure the Spring Boot application to hot-deploy changes == | ||
+ | |||
+ | The Spring boot applications needs to be advised, \\ | ||
+ | to take up any rebuilt app and hot-deploy it. | ||
+ | |||
+ | Add dependency to " | ||
+ | |||
+ | build.gradle | ||
+ | < | ||
+ | dependencies { | ||
+ | |||
+ | // makes Spring boot hot swap rebuilt jar to tomcat | ||
+ | developmentOnly ' | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==Ssh into Vagrant. Run application like Spring Boot application== | ||
+ | |||
+ | |||
+ | <sxh shell> | ||
+ | vagrant ssh | ||
+ | cd "/ | ||
+ | ./gradlew bootRun --args=' | ||
+ | </ | ||
+ | |||
+ | {{https:// | ||
+ | |||
+ | |||
+ | ===== Error: Authentication failure. Retrying... ===== | ||
+ | |||
+ | Thats also the reason for disk /mnt/d not being mounted correctly | ||
+ | |||
+ | <sxh shell> | ||
+ | |||
+ | # give the home permissions back to vagrant | ||
+ | # without that - / | ||
+ | # and also / | ||
+ | # so that no ssh connection works and | ||
+ | # vagrant ssh - failes with " | ||
+ | sudo chown -R vagrant: | ||
+ | </ | ||
devops/vagrant.1671392418.txt.gz · Last modified: by skipidar