Skip to content

Commit

Permalink
Provision with Ansible
Browse files Browse the repository at this point in the history
Signed-off-by: Liora Milbaum <[email protected]>
  • Loading branch information
lmilbaum committed Apr 10, 2024
1 parent dd4cf14 commit 8aba1fa
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 17 deletions.
12 changes: 1 addition & 11 deletions .github/scripts/provision.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,7 @@

set -x

if [[ "$(uname -m)" == "aarch64" ]]; then
arch="arm64"
else
arch="amd64"
fi

dnf install -y podman wget \
https://s3.us-east-2.amazonaws.com/amazon-ssm-us-east-2/latest/linux_${arch}/amazon-ssm-agent.rpm
dnf install -y podman wget
dnf clean all

wget -P locallm/models https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGUF/resolve/main/llama-2-7b-chat.Q5_K_S.gguf
Expand All @@ -24,6 +17,3 @@ podman run -it \
-p 8501:8501 \
-e MODEL_SERVICE_ENDPOINT=http://10.88.0.1:8001/v1 \
ghcr.io/containers/chatbot:latest

# this file is sampled when the terraform apply is running
touch /tmp/user_data_completed
23 changes: 17 additions & 6 deletions .github/workflows/testing-framework.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ on:

workflow_dispatch:

# pull_request: ## temporary for debugging development purposes
# branches:
# - main
pull_request: ## temporary for debugging development purposes
branches:
- main

env:
TF_VAR_aws_region: "eu-west-2"
Expand Down Expand Up @@ -41,7 +41,8 @@ jobs:
aws_image_type: m7g.medium
aws_ami_architecture: arm64
steps:
- uses: actions/[email protected]
- name: Checkout
uses: actions/[email protected]
with:
path: main

Expand All @@ -59,11 +60,11 @@ jobs:
terraform_version: "1.7.5"
terraform_wrapper: false

- name: Init Terraform
- name: Init
run: terraform init
working-directory: terraform-test-environment-module

- name: Spin Test Environment
- name: Bootstrap
id: up
run: terraform apply -auto-approve -lock=false
working-directory: terraform-test-environment-module
Expand All @@ -76,8 +77,17 @@ jobs:
run: |
echo "id=$(terraform output id | xargs)" >> $GITHUB_OUTPUT
echo "url=$(terraform output host | xargs)" >> $GITHUB_OUTPUT
echo "pem_filename=$(terraform output pem_filename | xargs)" >> $GITHUB_OUTPUT
working-directory: terraform-test-environment-module

- name: Provision
run: |
ansible-playbook ./main/recipes/natural_language_processing/chatbot/provision/playbook.yml \
-i terraform-test-environment-module/hosts.ini \
--private-key=terraform-test-environment-module/${{ steps.terraform-output.outputs.pem_filename }}
env:
ANSIBLE_HOST_KEY_CHECKING: false

- name: Set up Python
uses: actions/[email protected]
with:
Expand All @@ -88,6 +98,7 @@ jobs:
run: make install

- name: Wait for the user data script to finish
if: always()
run: sleep 240

- name: Run Integration Tests
Expand Down
38 changes: 38 additions & 0 deletions recipes/natural_language_processing/chatbot/provision/playbook.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
- name: Test Environment Provisioning
hosts: test_environments
remote_user: fedora
become: true
gather_facts: false
vars:
arch: "amd64"

tasks:

- name: Wait until the instance is ready
ansible.builtin.wait_for_connection:
delay: 10
timeout: 60

- name: Gather facts for first time
ansible.builtin.setup:

- name: Set variable arch
set_fact:
arch: "arm64"
when: ansible_architecture == "aarch64"

- name: Download GPG key file
ansible.builtin.get_url:
url: "https://s3.eu-west-2.amazonaws.com/amazon-ssm-region/latest/linux_{{ arch }}/amazon-ssm-agent.rpm.sig"
dest: "/tmp/gpg_key.pub"

- name: Import GPG key
ansible.builtin.rpm_key:
state: present
key: "/tmp/gpg_key.pub"

- name: Required packages
ansible.builtin.package:
name: "https://s3.eu-west-2.amazonaws.com/amazon-ssm-us-east-2/latest/linux_{{ arch }}/amazon-ssm-agent.rpm"
state: present

0 comments on commit 8aba1fa

Please sign in to comment.