[ansible]安装与部署

Linux修炼之旅ansible篇

本章对ansible进行了介绍,内容包括ansible的安装使用,操作环境的构建。
下面我们就开始吧。



一、ansible是什么?

ansible作为一种自动化运维工具,可以实现批量系统配置、批量程序部署、批量运行命令等功能。对于企业运维有很大帮助,可以帮助运维工作者提升效率。

二、Ansible的安装

首先搭建一个epel库
这里推荐使用aliyun的epel源
进入aliyun的官网,找到镜像站
在这里插入图片描述
在这里插入图片描述请添加图片描述
在红帽企业8中可以复制这个指令
再输入
sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*

sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*
就可以成功创建好阿里云的epel库了
安装好epel库以后,据可以直接从epel库下载ansible了。
dnf install ansible -y

安装完以后就就可以查看基本信息了

/etc/ansible/hostsansible --viersion
在这里插入图片描述ansible的基本信息
/etc/ansible/ansible.conf 全局配置文件,默认很少修改
/etc/ansible/hosts 全局主机清单清单文件

三、构建Anisble清单

清单就是ansible控制主机的列表
/etc/ansible/hosts

直接书写受管主机名或ip,每行一个
请添加图片描述
设定受管主机的组[组名称]

清单查看

ansible 清单中组名称 [-i 清单文件] --list host
ansible ungrouped --list-hosts #不在组中
ansible all --list-hosts #查看所有

现在清单中写入测试文件
比如在mnt/inventor中写入
请添加图片描述测试结果

在这里插入图片描述

单层清单和嵌套清单,查询筛选

与上一步一样继续编辑文件

单层清单
[list1]
node1.westos.com
node2.westos.com
[list2]
node2.westos.com
[list3]
172.25.254.240
嵌套清单
[westos:children]
list1
list3

ansible命令指定清单的正则表达式(按条件查询)

*
所有
172.25.254.*
: 
逻辑或
westos1:linux
172.25.254.100:172.25.254.200
:& 
逻辑与
westos1:&linux
主机即在westos1清单也在linux清单中
:! 
逻辑非
westos1:!linux
在westos1中不在linux中
~ 
以关键字开头
~(str1|str2) 
以条件1或者条件2开头

测试
先生成测试文件
请添加图片描述

在这里插入图片描述
效果测试
请添加图片描述
请添加图片描述

请添加图片描述
请添加图片描述

四、Ansible配置文件参数详解

配置文件的分类与优先级

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

常用配置参数

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

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

上述内容将在下一步的实验中得到体现

五、构建用户级Ansible操作环境

首先在ansible主机中创建一个用户devops,并设置密码
再切换到devops用户,创建目录ansile

请添加图片描述ssh-kegen
请添加图片描述
在目录ansible中

编辑文件ansible.cfg为

[defaults]
inventory = ~/ansible/inventory
host_key_checking = false
remote_user = devops
module_name = shell
[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False

再编辑文件inventory为

[westos]
172.25.254.200
172.25.254.20

代表ansible主机可以同时在这两个网段的主机上进行操作

然后就是完成如下步骤并测试
首先做免密处理
ansible westos -m shell -a 'useradd devops' -k -u root
``
ansible westos -m shell -a 'echo westos | passwd --stdin devops' -k -u root
ansible westos -m shell -a 'echo "devops ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers' -k -u root

请添加图片描述

请添加图片描述
再服务完成文件相应配置
ansible all -m file -a 'path=/home/devops/.ssh state=directory mode=0700 owner=devops group=devops' -k
ansible all -m copy -a 'src=/home/devops/.ssh/id_rsa.pub dest=/home/devops/.ssh/authorized_keys owner=devops group=devops mode=0600' -k

请添加图片描述

请添加图片描述
最后进行测试

ansible westos =m ping
请添加图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值