Ansible的安装及部署


实验环境:

ansible主机:配置网络仓库、可以上网、安装http、关闭防火墙、修改主机名
主机b:设置ip,关闭图形
主机c:设置ip,关闭图形
在这里插入图片描述
在这里插入图片描述

一、ansible简介

1.什么是ansible

ansible是一款开源自动化平台,是一个配置管理工具,自动化运维工具

2.ansible的优点

  1. 跨平台支持
  2. 人类可读自动化: ansible提供linux,Windows,unix和网络设备的无代理支持,适用于物理、虚拟、云和容器环境
  3. 完美描述应用:playbook
  4. 轻松管理版本控制:playbook是纯文本,可视作源代码
  5. 支持动态清单
  6. 编排可与其他系统轻松集成:puppet、jenkins
  7. 基础架构即代码
  8. 减少人为错误
    任务、play和playbook设计为具有幂等性,所以在运行playbook时,如果目标主机处于正确状态,则不会进行任何更改。

3.安装ansible

epel源
dnf install ansible -y
ansible --viersion

ansible的基本信息:
/etc/ansible/ansible.conf    ##全局配置文件,默认很少修改
/etc/ansible/hosts           ##全局主机清单清单文件

在这里插入图片描述

二、部署ansible

部署ansible时必须对所要管理主机和受管主机进行免密认证,才可以实现ansible自动化部署。

1.构建ansible清单

什么是清单?
清单就是ansible控制主机的列表
ansible 清单定义了ansible将要管理的一批主机

1.静态清单

每行一个,填写主机名或ip,如:
www.westos.org
172.25.254.250

注意:一台主机可以存在于多个主机组

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

#清单查看:

ansible 清单中组名称 [-i 清单文件] --list-hosts
ansible ungrouped --list-hosts
ansible all --list-hosts
#单层清单#
[list1]
node1.westos.com
node2.westos.com

[list2]
node2.westos.com

[list3]
172.25.254.240

#嵌套清单#
[westos:children]
list1
list3

在这里插入图片描述
在这里插入图片描述
3.主机规格的范围化操作
通过指定主机名称或IP的范围可以简化Ansible主机清单

语法:[start:end]

例子:
[westostest]
172.25.254.[100:108]

172.25.[0:4].[0:254]    #匹配172.25.0.0/24,172.25.1.0/24 …
server[01:10].example.com #匹配server01.example.com到server10.example.com所有主机
[a:c].example.com      #匹配a.example.com到c.example.com

在这里插入图片描述
在这里插入图片描述
4.指定其他清单文件

cd /mnt
vim inventory
172.25.254.240
[westostest]
172.25.254.100
172.25.254.200

#测试
ansible all -i inventory --list-hosts            ##列出主机,-i 指定文件
ansible westostest -i inventory --list-hosts     ##列出westostest组中的主机
ansible ungrouped -i inventory --list-hosts      ##列出不在组中的主机

在这里插入图片描述

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

*     ##所有
      ##172.25.254.*
      ##westos*

:     ##逻辑或
      ##westos1:linux
      ##172.25.254.100:172.25.254.200

:&    ##逻辑与
      ##westos1:&linux
      ##主机即在westos1清单也在linux清单中

:!    ##逻辑非
      ##westos1:!linux
      ##在westos1中不在linux中

~              ##以关键字开头
~(str1|str2)   ##以条件1或者条件2开头

在这里插入图片描述
在这里插入图片描述

2.Ansible配置文件参数详解

3.构建用户级Ansible操作环境

ansible 清单中组名称 -m 模块 -u remote_user
1.配置文件的分类与优先级

/etc/ansible/ansible.cfg  #基本配置文件,找不到其他配置文件此文件生效,优先级最低
~/.ansible                #用户当前目录中没有ansible.cfg此文件生效
./ansible.cfg             #优先级最高
                          #执行ansible命令的目录中如果有ansible.cfg,就用它,不使用上面两个(推荐使用,上面两个不常用)。

在这里插入图片描述
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=              ##日志文件路径

[privilege_escalation] ##身份信息设定(配置 ansible 如何在受管主机上执行特权升)
become=                ##连接后是否自动切换用户
become_method=         ##设定切换用户的方式,通常用sudo
become_user=           ##在受管主机中切换到的用户,通常为root
become_ask_pass        ##是否需要为become_method提示输入密码,默认为false

1、ansible中实现免密

[devops@westos_ansible .ansible]$ ssh-keygen   ##生成秘钥
[devops@westos_ansible .ansible]$ ls ~/.ssh/
id_rsa  id_rsa.pub  known_hosts
[devops@westos_ansible .ansible]$ ansible all -m shell -a 'mkdir /home/devops/.ssh'      
                                               ##建立目录
[devops@westos_ansible .ansible]$ ansible all -m shell -a 'chmod 700 /home/devops/.ssh'      
                                               ##加权限
[devops@westos_ansible .ansible]$ ansible all -m copy -a 'src=~/.ssh/id_rsa.pub dest=/home/devops/.ssh/authorized_keys mode=600 owner=devops group=devops'
                                               ##复制秘钥

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2、实现sudo,转换到root用户身份操作
在这里插入图片描述
在这里插入图片描述
测试

在这里插入图片描述
在这里插入图片描述
主机二、主机三
在这里插入图片描述


  • 23
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值