ansible 基础安装 环境配置

环境要求

  系统版本是 centos7.6    

  使用 python3.6版本 

  需要对系统进行初始化的基本安装包  使用"sysinit.sh"这个脚本初始化系统 

sysinit.sh 脚本内容

#!/bin/bash

#######################
# sysinit_centos7_x. sh
# Version 0.1
#######################
LOCAL_IP=`curl whatismyip.akamai.com`
echo "# $LOCAL_IP  localhost" >> /etc/hosts
KERNEL_VERION_1=`uname -a | awk '{print $3}' | awk -F"-" '{print $1}'`
if [ ${KERNEL_VERION_1} = '3.10.0' ] 
then
  OS_VERSION="RHEL7"
else
  echo "This script is not suitable for the running os version."
  exit 104
fi

if [ X$(id -u) != "X0" ]
then
   echo 'This script MUST be run as root!'
   exit 105
fi

echo "#############Install wget tools####################"
yum -y install wget

echo "#############update epel yum####################"
yum repolist | grep epel
if [ X$? != "X0" ]
then
  wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
  yum clean all && yum repolist
fi

echo "#############disabled selinux####################"
repaddline "^SELINUX=" "SELINUX=disabled" /etc/selinux/config
setenforce 0

echo -e "\n########## Install lrzsz ##########"
yum install lrzsz -y
echo -e "\n########## Config NTP shanghai  ##########"
yum install -y ntp
ln -sf /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime
ntpdate time.asia.apple.com
systemct start ntpd  &&  systemctl enable ntpd
ntpq -p
echo '* */30  * * *  /usr/sbin/ntpdate time.asia.apple.com  2>&1 ' >> /var/spool/cron/root 
echo -e "\n########## install Performance tool  ##########"
yum install yum-utils  bind-utils  lsof iftop telnet net-tools sysstat iotop inotify-tools gcc-c++ openssl-devel  -y 

echo -e "\n##########25########"
yum -y remove mariadb-libs

echo -e "\n##########hosts########"
chattr +i /etc/hosts

编译安装 python3.6版本

 Ansible 安装步骤

wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
tar -xvf Python-3.6.0.tgz 
cd Python-3.6.0
./configure --prefix=/usr/local/python3 --with-ssl --enable-optimezations
make   
make install 
/usr/local/python3/bin/pip3 install  ansible    #安装 anible
ln -sf /usr/local/python3/bin/* /usr/loca/bin
mkdir /etc/ansible  
touch /etc/ansible/{ansible.cfg,hosts}

  

Ansible.cfg 配置模块

[defaults]                                       
inventory = /etc/ansible/hosts                   
forks = 5                                        
default_sudo_user = root                         
remote_port = 22                                 
host_key_checking = False                        
timeout = 20                                     
log_path = /var/log/ansible.log                  
private_key_file = ~/.ssh/id_rsa  

  

Asnbiel.cfg配置文件详解

1)inventory 
该参数表示资源清单inventory文件的位置,资源清单就是一些Ansible需要连接管理的主机列表 
inventory = /root/ansible/hosts

2)library 
Ansible的操作动作,无论是本地或远程,都使用一小段代码来执行,这小段代码称为模块,这个library参数就是指向存放Ansible模块的目录 
library = /usr/share/ansible

3)forks 
设置默认情况下Ansible最多能有多少个进程同时工作,默认设置最多5个进程并行处理。具体需要设置多少个,可以根据控制主机的性能和被管理节点的数量来确定。 
forks = 5

4)sudo_user 
这是设置默认执行命令的用户,也可以在playbook中重新设置这个参数 
sudo_user = root
//注意:新版本已经作了修改,如ansible2.4.1下已经为:
default_sudo_user = root 

5)remote_port 
这是指定连接被关节点的管理端口,默认是22,除非设置了特殊的SSH端口,不然这个参数一般是不需要修改的 
remote_port = 22

6)host_key_checking 
这是设置是否检查SSH主机的密钥。可以设置为True或False 
host_key_checking = False

7)timeout 
这是设置SSH连接的超时间隔,单位是秒。 
timeout = 20

8)log_path 
Ansible系统默认是不记录日志的,如果想把Ansible系统的输出记录到人i治稳健中,需要设置log_path来指定一个存储Ansible日志的文件 
log_path = /var/log/ansible.log

另外需要注意,执行Ansible的用户需要有写入日志的权限,模块将会调用被管节点的syslog来记录,口令是不会出现的日志中的

9)private_key_file

在使用ssh公钥私钥登录系统时候,使用的密钥路径。

private_key_file=/path/to/file.pem

 

hosts文件配置详解

[test] 组配置
192.168.192.1:22 ansible_ssh_user=root ansible_ssh_pass='123456'  密码
192.168.192.1:22 ansible_ssh_user=root ansible_ssh_private_key_file=~/.ssh/id_rsa  #秘钥配置
test1  ansible_ssh_host=192.168.192.1  ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_private_key_file=~/.ssh/id_rsa  #别名配置
192.168.192.1:22 ansible_ssh_user=root ansible_ssh_pass='123456'  密码
[test_group1]
192.168.192.1:22 ansible_ssh_user=root ansible_ssh_pass='123456'  密码
[test_group2] #引用其他组配置
test         
test_group1    

192.168.192.1:22 ansible_ssh_user=root ansible_ssh_pass='123456'
[test_grouop3:vars]      
touch_file=jeson3 资产定义更新  

ansible 基本使用方法案例

ansible test_group1 -m shell -a "echo $HOSTNAME" -f 5   

ansible test_group1 -m copy -a "esrc=/tcp/host dest=/tmp" -f 5  -l 192.168.192.1 #复制文件

ansible  test_group1 -m setup   #查看系统版本

ansible  test_group1 -m setup   -a "filter=ansible_distribution*"   #只取出系统版版本信息

ansible  test_group1 -m yum -a "name=nginx state=presnt" -f 5 -l 192.168.192.1  #没有安装  就安装  安装了的 就升级

ansible  test_group1 -m service -a "name=nginx state=started" -f 5 -l 192.168.192.1  #启动nginx服务

ansible  test_group1 -m git -a  "repo=https://github.com/iopsgroup/imoocc dest=/opt/imoocc version=HEAD" -f 5 -l 192.168.192.1   #代码拉去

  

 

转载于:https://www.cnblogs.com/Black-Hawk/articles/10664375.html

你可能感兴趣的:(ansible 基础安装 环境配置)