自动化运维之1——Ansible的安装及部署

目录

一、ansible对企业运维的意义

二、安装Ansible

三、构建ansible的清单

1、清单的设定——全局清单

(1)单层清单

(2)嵌套清单

2、主机规格的范围化操作

3、清单的设定——其他清单 

4、清单中的逻辑关系

四、Ansible配置文件参数详解

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

1、Ansible的主机ssh免密

2、取消受控主机的sudo密码

3、取消ansible执行命令时的密码认证

4、恢复ansible默认配置,并重新建立一套ansible体系

六、本章总结


实验环境:一台可以上网的主机(ansible),两台客户机。配置好网络,配置好软件源。

一、ansible对企业运维的意义

在实际生产环境中,有成百上千台主机。一个人逐个主机进行设定不是容易的事情,费时费力还容易出错。因此需要通过Ansible实现对大量服务器的批量运维及管理。

二、安装Ansible

阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区阿里巴巴开源镜像站,免费提供Linux镜像下载服务,拥有Ubuntu、CentOS、Deepin、MongoDB、Apache、Maven、Composer等多种开源软件镜像源,此外还提供域名解析DNS、网络授时NTP等服务,致力于为互联网用户提供全面,高效和稳定的基础服务。https://developer.aliyun.com/mirror/?spm=a2c6h.13651104.0.d1002.196a530145Jmen由于ansible在镜像软件源中没有,所以需要通过epel源安装。epel源的软件包可以通过阿里巴巴镜像源下载:

配置epel镜像源:

安装ansible

三、构建ansible的清单

设置一个ansible清单,在管理主机时只对清单中的主机进行设定。

一个是ansible的主配置文件,一个是ansible的全局清单目录

1、清单的设定——全局清单

(1)单层清单

编辑ansible的清单配置文件</etc/ansible/hosts>。以“组”的形式,即这里分为westos组、linux组和list1组。

查看单层清单

ansible  all --list-hosts            #ansible查看所有清单
ansible  all --list                  #ansible查看所有清单
#这个hosts可以不加

 要查看哪个组就选哪个组

(2)嵌套清单

表示嵌套清单test中包含单层清单westos和linux

查看嵌套清单

2、主机规格的范围化操作

在添加批量主机时,如果主机太多,添加会比较麻烦。因此可以使用字符集合表示方法来简化。通过指定主机名称或IP的范围可以简化Ansible主机清单。

测试:

3、清单的设定——其他清单 

在</mnt/>下创建一个清单,absible默认不会读取,所以需要添加参数<-i>来指定读取的清单位置。

ansible -i /mnt/ansible_list all --list        #-i参数指定清单位置

 查看不在组里的主机名

ansible -i /mnt/ansible_list ungrouped --list        #查看不在任何组里的主机名

4、清单中的逻辑关系

*所有    /   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开头

ansible全局清单中包含以下内容,以这些内容为例。

< * >  :匹配所有字符

< : > :逻辑或,满足两个条件之一即可

< :& >:逻辑与,同时存在于两个清单的主机

注意:因为逻辑与< :& >是一个特殊字符,所以中间要加上引号

ansible 'westos:&linux' --list            #逻辑与

< :! >:逻辑非,在第一个清单且不在第二个清单中的主机。

注意:特殊符号需要用引号因起来,否则系统识别不了。

ansible 'westos:!linux' --list        #在清单westos中且不在linux中的主机

< ~ >:以关键字开头

< ~(str1|str2)>:表示以str1开头的或者以str2开头的

注意:特殊符号需要用引号因起来,否则系统识别不了。

ansible '~(node|c)' --list    #表示以node或者c开头的主机

四、Ansible配置文件参数详解

ansible的配置文件为</etc/ansible/ansible.cfg>

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

命令语法表示:在  清单中的主机  以  remote_user用户的身份  执行 **模块

如果不特殊指定的话,默认使用当前用户身份

基本信息设定:

#[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=##日志文件路径

ansible执行的本质是,将命令转换成<.py>文件,存放在local_tmp=设定的目录下,然后上传到远程主机remote_tmp=设定的目录下,远程主正常执行完毕后,删除双方的临时文件。

身份信息设定:用于设定sudo用户权限时

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

1、执行命令时,首次连接会出现主机密码验证

可以更改配置文件后,不再出现验证

2、连接远程主机时,需要<-k>输入密码,不输入密码就会报错。

ansible westos -m shell -a 'hostname' -k

3、添加默认默认清单

4、指定用户登录

默认不指定的情况下使用的是以当前用户身份。实际生产环境中容易造成混乱。

更改参数后重新测试:

默认以westos的用户身份登录<remote_user     = westos>

5、身份转换

远程执行命令时以westos的用户身份登录,但是普通用户很多操作无法实现,这就需要sudo取得超级用户身份来执行。

测试:

作出如上更改后,还需要在受控主机中给普通用户westos的sudo授权。<visudo>

授权完成后,ansible显示以westos身份执行命令成功。

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

由于

一、每次执行命令时都需要输入远程密码,很麻烦。所以可以构建一个专属用户的ansible的操作环境。

二、同一Ansible主机上不同操作者的控制习惯不同,因此在原有的ansible默认配置的基础上,可以重新建立一套ansible配置体系。

1、Ansible的主机ssh免密

ssh-keygen            #生成密钥
ssh-copy-id -i .ssh/id_rsa.pub westos@172.25.254.151    #向目标主机做做免密认证

2、取消受控主机的sudo密码<visudo>

3、取消ansible执行命令时的密码认证

4、恢复ansible默认配置,并重新建立一套ansible体系

在根目录下新建一个<.ansible>的目录,并将原ansible的配置文件</etc/ansible/ansible.cfg>复制到此目录下。稍后的修改就在此目录下的配置文件进行。 

修改此目录下的配置文件如下:

文件<inventory>为此目录下的配置对应的用户清单;<module_name>选项默认为command,这里修改默认为shell

整个新建目录下的文件内容如下所示:

ansible在执行的时候会先读取自己当前所在目录下的配置文件,当前路径下没有才会读取</etc/ansible/>目录下的配置。

六、本章总结

1、ansible在执行的时候会先读取自己当前所在目录下的配置文件,当前路径下没有才会读取</etc/ansible/>目录下的配置。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值