By harmless I'm guessing you mean mellow. You don't want something known for being bitey. By several feet what range do you want? 4-6 feet? over 7? if 4-6 feet is fine you could be happy with a ball python aka a royal python. they get the name ball python from the tendancy to hide their head in a ball of coils when threatened.
If you want something a bit longer you may want to consider a common boa or perhaps a rainbow boa. Common boas get to be 7-9 feet
How ever one thing to consider, when the common boa is full adult size it will be big enough to eat a small cat. All of them could probably hurt a cat.
You might also consider a colulbrid such as a corn snake or a king snake. These tend to stay smaller then the boas and pythons how ever i've found they are a bit more nervous and tend to be less handlable.
What ever snake you decide on, buy a book for that species and read it.
All the snakes i've mentioned are fairly common due to ease of feeding, disposition and colours.
For a good set up there's a couple ways you can go. Display cages, racks and rubbermaids. Personally I like Display cages, as I like to see my snakes and they look nicer when incorperated with other furnature.. Display cages can be made from wood, acrylic, or glass. Don't be surprised if you spend more on the set up then the snake. A good set up would be a cage big enough to house the snake as an adult. A general rule of thumb is that you want 1 square foot for each foot of snake. A good set up for a ball python would be a front opening 50G terrarium, an undertank heating pad connected to a rheostat (you can buy one or make one), two hide boxes just big enough for the snake to fit in and a water bowl big enough for the snake to soak in. You can use a substrate such as newspaper or paper towel but those don't look as nice or provide the humidity benifits of something like cypress mulch. A regular light on a timer for day/night cycle is a nice touch but not required. You can also provide things such as logs and branches to climb on and backgrounds.