Updated with ansible modules where appropriate