Get posts by user role in a Multisite

global $switched;
switch_to_blog(2); //switched to your site id based on which site post need.

$administrators = get_users( array( 'role' => 'administrator' ) ); // you can add more role on same query add with "," separated.
$administrators_ids = array();

$original_blog_id = get_current_blog_id(); 


foreach( $administrators as $admin ):
    $administrators_ids[] = $admin->ID;
    $news = new WP_Query( array( 'author' => implode( ',', $administrators_ids ), 'post_type' => 'news', 'paged' => get_query_var('paged') ) );
endforeach;
    if ( $news->have_posts() ) : 
        while ( $news->have_posts() ) : $news->the_post();

            //add code here

        endwhile; 

    endif;
wp_reset_postdata();
restore_current_blog();