diff --git a/e107_tests/lib/ci/salt/.gitignore b/e107_tests/lib/ci/salt/.gitignore index be5455581..60923f931 100644 --- a/e107_tests/lib/ci/salt/.gitignore +++ b/e107_tests/lib/ci/salt/.gitignore @@ -1,3 +1,4 @@ +roster cache/ logs/ -var/ \ No newline at end of file +var/ diff --git a/e107_tests/lib/ci/salt/README.md b/e107_tests/lib/ci/salt/README.md index 226a8e663..3fc8d162b 100644 --- a/e107_tests/lib/ci/salt/README.md +++ b/e107_tests/lib/ci/salt/README.md @@ -1,45 +1,56 @@ -# Development Environment Deployment +# e107 Local Test Container Setup 1. Launch a development container: ``` lxc launch -s local images:ubuntu/focal e107-dev - ``` 2. Push your public SSH key: ``` lxc file push --uid 0 --gid 0 -pv ~/.ssh/id_rsa.pub e107-dev/root/.ssh/authorized_keys - ``` 3. Install OpenSSH Server: ``` lxc exec e107-dev -- apt install -y openssh-server - ``` 4. Note the IP of the container: ``` E107_DEV_HOST=$(lxc exec e107-dev -- hostname -I | cut -d' ' -f1) - ``` 5. Generate the [Salt SSH](https://docs.saltstack.com/en/latest/topics/ssh/) [roster](https://docs.saltstack.com/en/latest/topics/ssh/roster.html): ``` echo "e107-dev: $E107_DEV_HOST" | tee roster - ``` 6. Configure `e107_tests/config.yml` based on `e107_tests/config.sample.yml` (from the root of this repository). - Set `db.dbname`, `db.user`, and `db.password` to what you want the container configuration to have. + For all tests: - Set `db.host` to the value of `$E107_DEV_HOST`. + > Set `db.dbname`, `db.user`, and `db.password` to what you want the container configuration to have. + > + > Set `db.host` to the value of `$E107_DEV_HOST`. + + For acceptance tests: + + > Set `deployer` to `sftp`. + > + > Set `fs.host` to the value of `$E107_DEV_HOST`. + > + > Set `fs.user` to `www-data`. + > + > Set `fs.password` to any password you want the user to have. + > + > Set `fs.path` to `/var/www/html/e107/`. + > + > Set `url` to the output of `echo "http://$E107_DEV_HOST/e107/"` 7. Apply the container configuration: ``` diff --git a/e107_tests/lib/ci/salt/roster b/e107_tests/lib/ci/salt/roster index d949bc0ac..725b6ac56 100644 --- a/e107_tests/lib/ci/salt/roster +++ b/e107_tests/lib/ci/salt/roster @@ -1 +1 @@ -e107-dev: 10.64.229.116 +e107-dev: e107-dev.lxc diff --git a/e107_tests/lib/ci/salt/states/e107-dev.sls b/e107_tests/lib/ci/salt/states/e107-dev.sls index 9120489e7..fd2180195 100644 --- a/e107_tests/lib/ci/salt/states/e107-dev.sls +++ b/e107_tests/lib/ci/salt/states/e107-dev.sls @@ -1,8 +1,15 @@ -Install MySQL server: +Install LAMP stack: pkg.installed: - pkgs: - mariadb-server - python3-mysqldb + - php + - libapache2-mod-php + - php-mysql + - php-xml + - php-curl + - php-gd + - php-mbstring MySQL server configuration file: file.managed: @@ -38,3 +45,27 @@ Create MySQL grants: - database: {{ salt['pillar.get']('db:dbname') }}.* - user: {{ salt['pillar.get']('db:user') }} - host: '%' + +Start and enable the web server: + service.running: + - name: apache2 + - enable: True + - watch: + - pkg: Install LAMP stack + +Configure Apache user: + user.present: + - name: {{ salt['pillar.get']('fs:user') }} + - password: {{ salt['pillar.get']('fs:password') }} + - hash_password: True + - shell: /bin/bash + +Ensure docroot has the correct permissions: + file.directory: + - name: {{ salt['pillar.get']('fs:path') }} + - user: {{ salt['pillar.get']('fs:user') }} + - group: {{ salt['pillar.get']('fs:user') }} + - recurse: + - user + - group + - makedirs: True