Summary and Schedule
This lesson traces the infrastructure that runs the UCLA Library Dataverse instance. It covers the AWS resources that provide compute, storage, and networking; the Ansible configuration that installs Dataverse and its dependencies; and the tooling that makes rebuilding and migrating the system repeatable.
It is written for people working in or being onboarded to UCLA Library data services: DSC staff, DataSquad students, and anyone who will be operating or handing off this infrastructure. The assumption is comfort with the command line and some exposure to cloud services or configuration management, but not infrastructure expertise.
By the end of this lesson you will be able to:
- Describe the components that make up a running Dataverse instance and what each does
- Navigate the three repositories that manage the UCLA Dataverse infrastructure
- Explain the division of responsibility between Terraform (infrastructure) and Ansible (configuration)
- Run the key Makefile targets for daily operations:
rebuild,baseline,reindex - Read test output and baseline comparisons to verify the system is in a known-good state
- Understand the 7-phase migration plan and what each phase accomplishes
Who this is for
- Data Science Center staff coming up to speed on what the infrastructure team built and why
- DataSquad students supporting data services and infrastructure work
- Incoming operators taking over responsibility for the Dataverse instance
- Tim and Jamie using this as a structured way to document decisions made during the 5.14 to 6.8 migration
Prerequisites
- Comfortable with the command line (navigating directories, running commands)
- Basic familiarity with Git (clone, commit, push)
- An AWS account with credentials for the
ucla-library-dscprofile, or access to the team’s shared environment
See the Setup page for installation instructions.
| Setup Instructions | Download files required for the lesson | |
| Duration: 00h 00m | 1. Introduction: Why We Built This Way |
What is this lesson and who is it for? What infrastructure does Dataverse need to run? How are Terraform, Ansible, and the Dataverse application connected? |
| Duration: 00h 20m | 2. Tooling Setup |
What tools do I need installed to work with this infrastructure? How do the three repositories fit together on my local machine? How do I configure AWS credentials for the correct profile? |
| Duration: 00h 50m | 3. Terraform: The Infrastructure Layer |
What AWS resources does Terraform manage for this project? How is Terraform state stored and shared between operators? How are Tim’s and Jamie’s environments organized? |
| Duration: 01h 25m | 4. Ansible: Configuration and Idempotency |
What does dataverse-ansible configure on the EC2
instance?What does idempotency mean in practice, and why does it matter for operations? How are environment-specific values managed without duplicating configuration? |
| Duration: 02h 00m | 5. The Dataverse Stack: Payara, Solr, and the Data Layer |
What is Payara and why does Dataverse use it? How does Dataverse store and retrieve data across RDS, S3, and Solr? What breaks when Solr is out of sync, and how do you fix it? |
| Duration: 02h 40m | 6. Secrets and Environment Configuration |
How are secrets kept out of the repository? What configuration is different between staging and production? What is a FAKE PID provider and why does it exist? |
| Duration: 03h 08m | 7. The Makefile: Daily Operations |
What can I do from the Makefile? What does make rebuild
actually do, step by step?When do I run make baseline
vs. make reindex?
|
| Duration: 03h 38m | 8. Testing and Validation |
How do we know the migration worked? What does the test suite check? How do baseline comparisons verify data integrity? |
| Duration: 04h 08m | 9. Using AI Tools in Infrastructure Work |
Where does AI actually help with infrastructure work, and where does it
mislead? What should I never share with an AI tool? How do I stay technically grounded when AI is doing a lot of the work? |
| Duration: 04h 33m | 10. The Migration Arc: 5.14 to 6.8 |
What changes between Dataverse 5.14 and 6.8? Why is the migration done in phases? What happens on cutover day and what does rollback look like? |
| Duration: 05h 03m | Finish |
The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.
Introduction
You do not need to understand everything on this page at this time. The goal is only to get the tools working. By the end of this setup, you will be able to authenticate to AWS, run Terraform, and prepare a working directory.
1. AWS Account
You will need an AWS account you can log into.
During the lesson, AWS will be used to create a virtual machine and
store a small amount of configuration data.
2. Install the AWS CLI
We use the AWS CLI throughout the lesson to authenticate and confirm credentials.
If you are using a personal AWS account without Identity Center, ask the instructor for an alternative setup.
Before running aws configure sso, confirm the
following:
- IAM Identity Center is enabled in your AWS account
- You have been given:
- an SSO start URL (looks like
https://your-org.awsapps.com/start) - the AWS region for Identity Center (commonly
us-west-2orus-east-1) - permission to assume at least one AWS account role
- an SSO start URL (looks like
If you do not have this information, contact your AWS administrator.
3. Configure AWS Credentials (IAM Identity Center / SSO)
AWS authentication is changing (and that’s normal)
AWS has significantly changed how users authenticate over the last few years.
Older tutorials often reference: - long-lived access keys
(AWS_ACCESS_KEY_ID) - aws configure with
static credentials - manually managing credentials files
This lesson uses AWS IAM Identity Center (SSO), which is now the recommended approach for most organizations.
As a result: - some older guides will not match what you see here - prompts in the AWS CLI may look unfamiliar - defaults (like SSO registration scopes) are usually correct
If something feels different from past AWS experience, that’s expected.
Learners with prior AWS experience may expect access keys instead of SSO. Reassure them that Identity Center is now standard in many organizations and that accepting defaults is usually correct.
This lesson uses IAM Identity Center, the modern AWS authentication system.
Run:
Follow the browser prompts to authenticate.
Then confirm your identity. This command doesn’t change anything. It only confirms that authentication worked.
You should see:
- Your AWS account ID
- Your IAM role ARN
- Your user ID
4. Install Terraform
Verify installation:
5. Create a Working Directory
Create a folder where your Terraform configuration files will live:
6. (Optional) Clone the Lesson Repository
If you want the example files from this lesson:
- Install AWS CLI, Terraform, and Git before beginning the lesson
- Use
aws configure ssoto authenticate with AWS Identity Center - Use
terraform versionandaws --versionto verify installation - Create a dedicated working directory for Terraform files