We consider the Connected Facility location problem. We are given a graph G = (V, E) with costs {c(e)} on the edges, a set of facilities F subset of or equal to V, and a set of clients D subset of or equal to V. Facility i has a facility opening cost f(i) and client j has d(j) units of demand. We are also given a parameter M greater than or equal to I. A solution opens some facilities, say F, assigns each client j to an open facility i (j), and connects the open facilities by a Steiner tree T. The total cost incurred is Sigma(iis an element ofF) f(i) + Sigma(jis an element ofD) d(j)c(i(j)j) + M Sigma(eis an element of) c(e). We want a solution of minimum cost. A special case of this problem is when all opening costs are 0 and facilities may be opened anywhere, i.e., F = V. If we know a facility a that is open, then the problem becomes a special case of the single-sink buy-at-bulk problem with two cable types, also known as the rent-or-buy problem. We give the first primal-dual algorithms for these problems and achieve the best known approximation guarantees. We give an 8.55-approximation algorithm for the connected facility location problem and a 4.55-approximation algorithm for the rent-or-buy problem. Previously the best approximation factors for these problems were 10.66 and 9.001, respectively [8]. Further, these results were not combinatorial-they were obtained by solving an exponential size linear programming relaxation. Our algorithm integrates the primal-dual approaches for the facility location problem [11] and the Steiner tree problem [1], [3]. We also consider the connected k-median problem and give a constant-factor approximation by using our primal-dual algorithm for connected facility location. We generalize our results to an edge capacitated variant of these problems and give a constant-factor approximation for these variants.