ansible安装

第一章 ansible产品简介

1.1 功能概述

ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

1.2 功能说明

ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:

(1)、连接插件connection plugins:负责和被监控端实现通信;

(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;

(3)、各种模块核心模块、command模块、自定义模块;

(4)、借助于插件完成记录日志邮件等功能;

(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

1.3 部署说明

部署ansible需要跟被管理端开启免密登录(强烈不建议使用root用户),将普通用户赋予root用户权限,只允许一个ip登录。

1.3.1 免密登录

需要跟服务端开启免密登录,强烈不建议使用root用户,将普通用户赋予root用户权限,只允许一个ip登录,需要关闭selinux如若不关闭需安装yum install libselinux-python -y(建议安装)!

第二章 ansible产品安装部署

2.1 环境准备

2.1.1 主机环境

2.1.1.1
操作系统
2.1.1.2 所需介质

使用yum安装ansible无需任何介质!

2.1.2 网络环境

服务端和客户端需免密登录。

2.2 ansible产品程序安装

yum -y install ansible 即可完成安装。


2.2.1 查看版本号

2.3 ansible产品配置

2.3.1 修改ansible.cfg文件

使用化境变量方式来配置

大多数的Ansible参数可以通过设置带有ANSIBLE_开头的环境变量进行配置,参数名称必须都是大写字母,如下配置:

export ANSIBLE_SUDO_USER=root

设置了环境变量之后,ANSIBLE_SUDO_USER就可以在playbook中直接引用。

2、设置ansible.cfg配置参数

Ansible有很多配置参数,下面列出常用的配置参数:

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

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)host_key_checking

如果有台被管节点重新安装系统并在known_hosts中有了与之前不同的密钥信息,就会提示一个密钥不匹配的错误信息,直到被纠正为止,在使用Ansible时,如果有台被管理节点没有在known_hosts中被初始化,将会在使用Ansible或定时执行Ansible时提示对key信息的确认。

如果不想出现这种情况,并且明白禁用此项行为的含义,只要修改该参数为False即可

2.3.2 修改hosts文件

Hosts文件为ansible的主机列表存储文件,在hosts文件中以组为单位,如图下:

将主机地址写进hosts文件,定义主机组名称如:webservers

如需安装redis就另建一个主机组名称如dbservers

2.3.3 创建目录

使用yum安装完成ansible在/etc/目录下会有ansible目录在目录下创建roles目录。以下为nginx安装示范:

在roles目录下创建以下目录:

 

将nginx安装包放在files目录下,将nginx.conf放在templates目录下。在各自目录下创建相应的文件。特别是tasks目录下的main.yaml要写如下:

- name: copy package

  copy: src=nginx-1.13.3.tar.gz dest=/usr/local/src/nginx-1.13.3.tar.gz

  tags: cppkg

 

- name: tar nginx

  shell: cd /usr/local/src;tar -xf nginx-1.13.3.tar.gz

 

- name: yum install

  yum: name={{ item }} state=latest

  with_items:

    - openssl-devel

    - pcre-devel

    - gcc

 

- name: install nginx

  shell: useradd nginx;cd /usr/local/src/nginx-1.13.3;./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module  --with-pcre;make && make install

 

- name: copy conf file

  template: src=nginx.conf dest=/usr/local/nginx/conf/nginx.conf

 

- name: systemctl init

  template: src=nginx.service dest=/usr/lib/systemd/system/nginx.service

 

- name: start nginx service

  service: name=nginx state=started enabled=true

 

在/etc/ansible/目录下编写nginx.yaml文件,写入以下内容:

 

使用ansible-playbook –-syntax=check /etc/ansible/nginx.yaml文件的语法示范正确。如下:

 

 

2.4 验证部署


在服务端上使用ansible的命令验证是否能连接客户端:

命令含义为:ansible webservers(组名)-m 指定方式为shell


-a 要copy的文件和重定向的文件。下面显示绿色提示为正常连接。在客户端上查看文件是否存在:


使用ansible-playbook命令安装客户端的nginx如下:


提示如下就是安装完毕,去客户端上查看nginx是否安装完成,

 

 

如图上所示表示安装完成。

转载于:https://www.cnblogs.com/lsolation/p/10944745.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值