Linux中ansible的安装和部署

一. Ansible的安装

1.1 搭建epel源

编辑/etc/yum.repos.d/xxx.repo

Linux中ansible的安装和部署_第1张图片

1.2 搭建好后搜索ansible

Linux中ansible的安装和部署_第2张图片

1.3 安装:

dnf install ansible.noarch

二. 用rpm包安装ansible

2.1 ansible-2.9.11-1.el8.noarch

ansible rpm安装包
提取码:lx9z

2.2 sshpass-1.06-9.el8.x86_64

sshpass rpm安装包
提取码:5zm7

2.3 下载好之后将两个安装包导入虚拟机中

Linux中ansible的安装和部署_第3张图片

2.4 开始解压

unzip解压两个安装包

Linux中ansible的安装和部署_第4张图片

解压完成后开始安装

Linux中ansible的安装和部署_第5张图片

注意:安装时当文件存在依赖性时,用dnf命令安装依赖性文件
或者用rpm忽略依赖性

Linux中ansible的安装和部署_第6张图片

三. ansible的基本信息

/etc/ansible/ansible.conf 全局配置文件,默认很少修改
/etc/ansible/hosts 全局主机清单清单文件

四. 构建ansible清单

清单就是ansible控制主机的列表
/etc/ansible/hosts ##全局清单文件

4.1 直接书写受管主机名或ip,每行一个

直接在清单中书写

vim /etc/ansible/hosts

注意:在清单中可以填写ip和主机名称

Linux中ansible的安装和部署_第7张图片

测试:
在测试时在你的ansible主机中做好相应的解析

vim /etc/hosts

Linux中ansible的安装和部署_第8张图片

ansible-inventory all --list 查看清单

Linux中ansible的安装和部署_第9张图片

ansible all --list-hosts
显示所有列表

格式:ansible list_name --list-hosts

Linux中ansible的安装和部署_第10张图片

ansible node1.westos.com --list-hosts
显示node1.westos.com在哪一个组中

Linux中ansible的安装和部署_第11张图片

主机规格的范围化操作

通过指定主机名称或IP的范围可以简化Ansible主机清单

语法:

[start:end]

Linux中ansible的安装和部署_第12张图片

测试:
:相当于从哪里到哪里

Linux中ansible的安装和部署_第13张图片

4.2 设定受管主机的组[组名称]

vim /etc/ansible/hosts

注意:当有没有分组的ip或者主机名要写到开头处,写道末尾默认为最后一个清单

Linux中ansible的安装和部署_第14张图片

测试:

ansible westos_list1 --list-hosts

Linux中ansible的安装和部署_第15张图片

ansible westos_list4 --list-hosts 嵌套清单

Linux中ansible的安装和部署_第16张图片

注意:当显示的为嵌套清单时嵌套清单中的所有都会显示出来

ansible ungrouped --list-hosts 不在任何组中的

Linux中ansible的安装和部署_第17张图片

ansible-inventory --list 显示层级结构

Linux中ansible的安装和部署_第18张图片

4.3 指定其他清单文件

vim inventory

Linux中ansible的安装和部署_第19张图片

测试:

ansible westos_list1 -i /mnt/inventory --list-hosts
查看inventory中westos_list1的清单

Linux中ansible的安装和部署_第20张图片

五. ansible命令指定清单的正则表达式

5.1

* 表示所有

ansible 172.25.254. -i /mnt/inventory --list-hosts*

显示inventory中符合172.25.254.*的所有条件

Linux中ansible的安装和部署_第21张图片

5.2

: 逻辑或

ansible westos_list1:westos_list2 -i /mnt/inventory --list-hosts

显示inventory中westos_list1和westos_list2中的所有条件

Linux中ansible的安装和部署_第22张图片

5.3

:& 逻辑与

ansible “westos_list1:&westos_list2” -i /mnt/inventory --list-hosts

显示inventory中westos_list1和westos_list2中共有的所有条件

Linux中ansible的安装和部署_第23张图片

5.4

:! 逻辑非

ansible ‘westos_list1:!westos_list2’ -i /mnt/inventory --list-hosts

显示inventory中westos_list1中有却westos_list2中没有的所有条件

Linux中ansible的安装和部署_第24张图片

5.5

~ 以关键字开头

ansible ~westos -i /mnt/inventory --list-hosts

显示inventory中以westos开头的所有清单

Linux中ansible的安装和部署_第25张图片

~(str1|str2) 以条件1或者条件2开头

ansible ‘~(westos|192)’ -i /mnt/inventory --list-hosts

显示inventory中以westos和192开头的所有清单

Linux中ansible的安装和部署_第26张图片

六. Ansible配置文件参数详解

ansible-doc -l
列出ansible的所有指令

注意:ansible一共有3387个指令

Linux中ansible的安装和部署_第27张图片

ansible 清单中组名称 -m 模块 -u remote_user

6.1 配置文件的分类与优先级

/etc/ansible/ansible.cfg 基本配置文件,找不到其他配置文件此文件生效
~/.ansible.cfg 用户当前目录中没有ansible.cfg此文件生效
./ansible.cfg 优先级最高

vim /etc/ansible/ansible.cfg
编辑主配置文件

Linux中ansible的安装和部署_第28张图片

测试:

连接成功

Linux中ansible的安装和部署_第29张图片

6.2 常用配置参数

[default] 基本信息设定
inventory= 指定清单路径
remote_user= 在受管主机上登陆的用户名称,未指定使用当前用户
ask_pass= 是否提示输入SSH密码,如果公钥登陆设定为false
library= 库文件存放目录
local_tmp= 本机临时命令执行目录
remote_tmp= 远程主机临时py命令文件存放目录
forks= 默认并发数量
host_key_checking= 第一次连接受管主机时是否要输入yes建立host_key
sudo_user= 默认sudo用户
ask_sudo_pass= 每次在受控主机执行ansible命令时是否询问sudo密码
module_name= 默认模块,默认使用command,可以修改为shell
log_path= 日志文件路径

测试:

编辑配置文件
vim /etc/ansible/ansible.cfg
remote_user=zyj
当不加用户登陆时默认用户为zyj

Linux中ansible的安装和部署_第30张图片

测试修改结果

Linux中ansible的安装和部署_第31张图片

inventory=
指定清单路径

指定清单路径为/mnt/inventory

Linux中ansible的安装和部署_第32张图片

测试修改结果

Linux中ansible的安装和部署_第33张图片

ask_pass=
是否提示输入SSH密码,如果公钥登陆设定为false

Linux中ansible的安装和部署_第34张图片

修改后测试对比:

Linux中ansible的安装和部署_第35张图片

当两个主机间建立免密登陆时

Linux中ansible的安装和部署_第36张图片

当ask_pass=True时

Linux中ansible的安装和部署_第37张图片

测试:

注意:当还为True时还需要输入密码才可以登录

Linux中ansible的安装和部署_第38张图片

修改ask_pass=False时

Linux中ansible的安装和部署_第39张图片

测试:

注意:不需要输入密码

在这里插入图片描述

module_name=
默认模块,默认使用command,可以修改为shell

Linux中ansible的安装和部署_第40张图片

测试:

Linux中ansible的安装和部署_第41张图片

修改默认为shell

Linux中ansible的安装和部署_第42张图片

测试:

Linux中ansible的安装和部署_第43张图片

library=
库文件存放目录

修改库文件存放目录为/tmp
Linux中ansible的安装和部署_第44张图片

测试:

Linux中ansible的安装和部署_第45张图片

local_tmp=
本机临时命令执行目录

Linux中ansible的安装和部署_第46张图片

测试:

Linux中ansible的安装和部署_第47张图片

script表示在远程主机中执行命令

当关闭时临时也会消失

Linux中ansible的安装和部署_第48张图片

remote_tmp=
远程主机临时py命令文件存放目录

Linux中ansible的安装和部署_第49张图片

sudo_user=
默认sudo用户

给普通用户下方权限

Linux中ansible的安装和部署_第50张图片

测试:
注意:这里第一个become相当于sudo
Linux中ansible的安装和部署_第51张图片

编辑配置文件使其简化

[privilege_escalation] 身份信息设定
become= 连接后是否自动切换用户
become_method= 设定切换用户的方式,通常用sudo
become_user= 在受管主机中切换到的用户,通常为root
become_ask_pass 是否需要为become_method提示输入密码,默认为false

Linux中ansible的安装和部署_第52张图片

测试:

Linux中ansible的安装和部署_第53张图片

七. 构建用户及ansible操作环境

cp /etc/ansible/ansible.cfg .

复制/etc/ansible/ansible.cfg到当前目录

在这里插入图片描述

编辑配置文件(将没有用的数据删除,删除之后的将按照默认操作)

注意:在当前目录下的ansible.cfg优先读取

vim ansible.cfg

Linux中ansible的安装和部署_第54张图片

修改默认访问目录为当前目录的inventory并编辑

Linux中ansible的安装和部署_第55张图片

测试:

Linux中ansible的安装和部署_第56张图片

END BYE

你可能感兴趣的:(ansible,linux,运维)