第二节安装ansible 运维自动化

  • 2.1 安装ansible
  • 2.1.1.上传ansible的依赖包
  • 2.1.2.安装ansible的依赖包
  • 2.1.3.查看安装后的ansible软件
  • 2.1.4.相关文件的编辑


2.1 安装ansible

2.1.1.上传ansible的依赖包

1)先切换到cd /usr/local/src

rh86离线安装ansible el8 rpm ansible yum安装_依赖包

2)打开远程传输 xftp5,将依赖包远程传输到src目录下

rh86离线安装ansible el8 rpm ansible yum安装_linux_02

rh86离线安装ansible el8 rpm ansible yum安装_幂等性_03

2.1.2.安装ansible的依赖包

可以通过epel源安装ansible软件

安装命令 yum localinstall *-----将本地当前目录里的软件全部安装

rh86离线安装ansible el8 rpm ansible yum安装_IP_04

rh86离线安装ansible el8 rpm ansible yum安装_IP_05

如果安装出现问题,首先查看是否将镜像挂载

2.1.3.查看安装后的ansible软件

----rpm -ql ansible

rh86离线安装ansible el8 rpm ansible yum安装_依赖包_06

相关文件:/etc/ansible/hosts ------host inventory
/usr/bin/ansible ------主要命令
/usr/bin/ansible-doc ------查看文档,
/usr/bin/ansible-playbook -----播放剧本

2.1.4.相关文件的编辑

1)查看 vim /etc/ansible/hosts

有2种方式,第一种是没有分组的,

rh86离线安装ansible el8 rpm ansible yum安装_linux_07

另一个种是以分组的方式

rh86离线安装ansible el8 rpm ansible yum安装_依赖包_08


rh86离线安装ansible el8 rpm ansible yum安装_运维_09

在分组的情况下,一个IP/主机可以属于多个组

我们根据需要自定义创建分组并声明组成员,可以使用主机名,但是一定要保证主机名能够被解析,主机数越多,编写的配置文件就越多

2) 编辑 etc/ansible/hosts文件内容

rh86离线安装ansible el8 rpm ansible yum安装_幂等性_10

3)配置主机之间的互信

配置互相端,只要在ansible端配置即可

rh86离线安装ansible el8 rpm ansible yum安装_linux_11

相互信任的前提是双方都要配置互信才可以

rh86离线安装ansible el8 rpm ansible yum安装_IP_12

而且主机越多,表示上传的公钥次数也越多

ssh-keygen -t rsa -P ‘’ 或者ssh-keygen----生成密钥

ssh-copy-id -i .ssh/id_rsa.pub root@被远程的服务器IP地址1

ssh-copy-id -i .ssh/id_rsa.pub root@被远程的服务器IP地址2

rh86离线安装ansible el8 rpm ansible yum安装_幂等性_13

4)使用ansible进行测试

使用的命令: ansible all -m 模块

All参数表示主机清单中提到的所有主机----host inventory

-m参数表示调用的模块

Ping模块表示测试各个节点网络是否正常

rh86离线安装ansible el8 rpm ansible yum安装_linux_14

5)ansible命令用法

注意:使用ansible远程执行命令一次只能执行一个,不能使用管道符、连接符、重定向、与或非等,除非配合shell模块使用

Ansible命令:针对一组主机定义并运行单个任务“剧本”

基本语法: ansible +all /组名 +选项

选项:-m +模块名字-----执行对应的模块名,

不加模块,默认执行command模块

-a +模块参数-----指定模块参数

常用命令格式:ansible all -m+模块名 -a+“参数1=参数 +空格+ 参数2=参数 。。。。。。”

练习:

rh86离线安装ansible el8 rpm ansible yum安装_幂等性_15

  1. 幂等性
    幂等性:相同的操作执行N次结果都是一样的
    而ansible命令不具备幂等性这一特性,除非和核心模块一起使用,就会有幂等性,
    Ansible的核心模块是具有幂等性的,但是如果直接使用command模块执行命令,不能保证幂等性

Id $name &> /dev/null || useradd 用户名 -----这个语句具有幂等性