Playing as Rome:
With Rebel cities that I want to make allies, my preferred method is to let another faction conquer them, then I go charging to the rescue and kick out the attackers. Then the people are so grateful they willingly become my allies, and I install a type IV government, and garrison with locally raised troops.
If the AI isn't obliging enough to conquer them for me, then I have to do it myself. Sometimes I can simulate a 'local' war by having one of my other allied cities attack the target. This other ally will use non-Roman troops, so I can 'pretend' that Rome isn't involved at this stage of the game. My other ally will attack with inadequate forces and get themselves defeated by the Elutheroi garrison of the target (this defeat is simulating an Elutheroi attack on my other ally, because the Elutheroi garrison is launching a sortie on the weaker besiegers.) Now Rome is 'forced' to intervene to support her other ally, and defeat the Elutheroi. Target taken, Type IV government installed, job done.
Bookmarks