By Brock Tibert
Very simply, I have been struggling to set system-wide environment variables while my droplet is being created. I have attempted to set them via the User-Data option on the dashboard, both using runcmd and straight bash.
The hurdle I am hitting is that after I echo the variables to ~.bashrc, it seems like source ~/.bashrc is not firing.
Once I ssh into the server, I can source and everything is fine, but I would prefer to have them set out of the gate.
Perhaps I am tackling this problem from the wrong angle, as I am new to this sort of thing, but I am trying to avoid manually setting them every time I spin up a new droplet.
Thanks in advance!
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Try adding the following to your ~/.profile file (if it is missing):
if [ "$BASH" ]; then
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
fi
Add somthing like this to your user-data section when spinning up a new droplet.
#cloud-config
users:
- name: sammy
shell: /bin/bash
groups: sudo
sudo: ALL=(ALL) NOPASSWD:ALL
ssh-authorized-keys:
- your_public_ssh_key
write_files:
- path: /home/sammy/.profile
owner: sammy:sammy
permissions: '0644'
content: |
if [ -n "$BASH_VERSION" ]; then
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.