Pennington played 68 games with the Diamondbacks last season, hitting .254 with two homers and 10 RBIs. He missed two months of the season with a sprained thumb.
The 30-year-old was primarily a shortstop with Oakland, but filled a utility role in three seasons with Arizona, also playing second and third base.
He has hit 248 with 27 homers and 190 RBIs in seven big league seasons. Pennington made $2.75 million last season, completing a $5 million, two-year deal.