Question

Set Environment variables at creation

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!


Submit an answer

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!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Want to learn more? Join the DigitalOcean Community!

Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in Q&A, subscribe to topics of interest, and get courses and tools that will help you grow as a developer and scale your project or business.

Add somthing like this to your user-data section when spinning up a new droplet.

User Data
#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

Try adding the following to your ~/.profile file (if it is missing):

if [ "$BASH" ]; then
  if [ -f ~/.bashrc ]; then
    . ~/.bashrc
  fi
fi