I have a netbox 3 instance on a docker server this is working well, but I need to migrate it to a new host.

How would I even begin that process?

  • Mortimus@rammy.site
    link
    fedilink
    arrow-up
    0
    ·
    1 year ago

    Not familiar with netbox, so there may be nuance that I’m likely to miss. But I guess the first thing to do is understand exactly what you have. Are your containers deployed using docker compose? If so, just copy the compose file over to the new host, then docker compose up -d and your container stack should be running just the same. If your not using compose yet, there’s a tool that can generate a compose file from running docker containers. That could make life easier.

    The possibly more complicated bit is any persistent data - where is this? Is it in bind mounts on the host? Or volume mounts? Things like secrets and configuration will also need to be copied over and put in the right places, as just a compose file alone will only get you a greenfield setup

    • Egroeggnik@rammy.siteOP
      link
      fedilink
      arrow-up
      0
      ·
      1 year ago

      It starts with a docker-compose file. There’s lots of persistent data and it’s in volume mounts. I don’t know if I’m making a lot of sense, I’m new to Docker and don’t know all the right words to use yet.

      If you have more than a few machines and are starting to lose track of which cables go where, and which IPs you’re using, netbox is a good resource.

      https://github.com/netbox-community/netbox

      • Djokkum@rammy.siteM
        link
        fedilink
        arrow-up
        0
        ·
        1 year ago

        If you are comfortable with it you could share the contents of your docker-compose, that would make it a bit easier for us to give some pointers. Just be sure to redact any sensitive information (usernames, passwords, IP adresses etc.)

        • Egroeggnik@rammy.siteOP
          link
          fedilink
          arrow-up
          1
          ·
          1 year ago
          version: '3.4'
          services:
            netbox: &netbox
              image: netboxcommunity/netbox:${VERSION-v3.3-2.2.0}
              depends_on:
              - postgres
              - redis
              - redis-cache
              - netbox-worker
              env_file: env/netbox.env
              user: 'unit:root'
              volumes:
              - ./configuration:/etc/netbox/config:z,ro
              - ./reports:/etc/netbox/reports:z,ro
              - ./scripts:/etc/netbox/scripts:z,ro
              - netbox-media-files:/opt/netbox/netbox/media:z
            netbox-worker:
              <<: *netbox
              depends_on:
              - redis
              - postgres
              command:
              - /opt/netbox/venv/bin/python
              - /opt/netbox/netbox/manage.py
              - rqworker
            netbox-housekeeping:
              <<: *netbox
              depends_on:
              - redis
              - postgres
              command:
              - /opt/netbox/housekeeping.sh
          
            # postgres
            postgres:
              image: postgres:14-alpine
              env_file: env/postgres.env
              volumes:
              - netbox-postgres-data:/var/lib/postgresql/data
          
            # redis
            redis:
              image: redis:7-alpine
              command:
              - sh
              - -c # this is to evaluate the $REDIS_PASSWORD from the env
              - redis-server --appendonly yes --requirepass $$REDIS_PASSWORD ## $$ because of docker-compose
              env_file: env/redis.env
              volumes:
              - netbox-redis-data:/data
            redis-cache:
              image: redis:7-alpine
              command:
              - sh
              - -c # this is to evaluate the $REDIS_PASSWORD from the env
              - redis-server --requirepass $$REDIS_PASSWORD ## $$ because of docker-compose
              env_file: env/redis-cache.env
          
          volumes:
            netbox-media-files:
              driver: local
            netbox-postgres-data:
              driver: local
            netbox-redis-data:
              driver: local
          

          The volumes that start with ./ I can deal with. It’s those 3 at the end I don’t know about.