Try this below code, also remember you can omit get_template_part( 'content', 'page' );
if you do not want content-page.php template to display your books. You can create your own file like content-book.php and change get_template_part
to include your new template.
<?php
/**
* Template Name: Books
*
*
*
* @package WordPress
* @subpackage Twenty_Twelve
* @since Twenty Twelve 1.0
*/
get_header(); ?>
<div id="primary" class="site-content">
<div id="content" role="main">
<?php get_posts(array('post_type'=>'books')); ?>
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<h1><?php the_field('book_title'); ?></h1>
<h2><?php the_field('book_author'); ?></h2>
<p><?php the_field('pub_year'); ?></p>
<?php get_template_part( 'content', 'page' ); ?>
<?php comments_template( '', true ); ?>
<?php endwhile; // end of the loop. ?>
<?php endif; wp_reset_postdata(); ?>
</div><!-- #content -->
</div><!-- #primary -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>