运维

ansible服务安装部署

2019-08-20  本文已影响0人  张新雨有点胖噢

Ansible批量管理工具

  1. PS : ansible软件特点
    (1) 部署方便简单
    (2) 软件不需要启动服务
    (3) 客户端不需要进行配置
    (4) 功能强大

Ansible软件部署安装

  1. 安装ansuble
    管理端安装ansible软件程序

yum install -y ansible

PS : 注意被管理端防火墙策略 selinux 安全策略是否阻止

  1. 安装后软件配置路径
    配置目录/etc/ansible/
[root@m01 ~]# tree /etc/ansible/
/etc/ansible/
├── ansible.cfg
├── hosts
└── roles
1 directory, 2 files

其中 :
ansible.cfg 是配置ansible软件设置 默认就好
hosts 是配置主机清单,在最后一行进行编写被管理端IP
roles 是配置ansible剧本

  1. 主机清单配置方法
    (1) 直接简单粗暴写上被管理端IP
[root@m01 ~]# vim /etc/ansible/hosts
最下面编写
172.16.1.41
172.16.1.31
172.16.1.7      <--每一个IP都要新起一行写
测试方法 : 
[root@m01 ~]# ansible 172.16.1.41,171.16.1.31,172.16.1.7 -m ping  
ping模块 测试是否连接

(2) 分组编写

[root@m01 ~]# vim /etc/ansible/hosts
[nfs]
172.16.1.31

[backup]
172.16.1.41

[web]         <-- [组名] 用方括号来定义组名
172.16.1.7    <-- IP 下面写定义的组包含ip

测试:
[root@m01 ~]#  ansible nfs,backup,web -m ping 

(3) 设置管理主机连接参数信息(设置absible程序内置变量)

[root@m01 ~]# vim /etc/ansible/hosts
172.16.1.31 ansible_user=root ansible_password=123456 ansible_prot=22
Ansible_user= 登陆的用户
Ansible_password= 登陆的用户密码
Ansible_prot= 指定连接端口
Xxx名字 ansible_host=172.16.1.31  定义主机名 在ansible内部定义
测试 : 
[root@m01 ~]# ansible 172.16.1.31 -m ping

(4) 嵌入式配置

[root@m01 ~]# vim /etc/ansible/hosts
[oldboy:children]    <--固定格式 [主组名:children]
nfs                  <--下面是附属的组名称
web
backup

[nfs]
172.16.1.31

[backup]
172.16.1.41

[web]
172.16.1.7
以后就可以直接输入主组名称 一起控制下面附属组内的ip地址主机
测试 : 
[root@m01 ~]# ansible oldboy -m ping

嵌入式配置

[rsync]
172.16.1.31
172.16.1.7
[rsync:vars]          固定写法 代表设置变量
ansible_user=root
ansible_passwprd=12345
ansible_port=22

PS : [组名:vars] 表示下面的变量设置全都设置给对应组下所有ip地址

(5) 使用匹配符合,匹配多个主机

[root@m01 ~]# vim /etc/ansible/hosts
[rsync]
172.16.1.[1:7]

设置rsync组下的ip地址为172.16.1.1到7
PS连续的可用 不连续的不要用

Ansible常见问题错误

  1. 问题一: 提示port 22: Connection refused(端口22不通)
    172.16.1.41 | UNREACHABLE! => {
        "changed": false, 
        "msg": "Failed to connect to the host via ssh: ssh: connect to host 172.16.1.41 port 22: Connection refused", 
        "unreachable": true
    }
    排错方法:
01. 利用ssh命令远程连接测试  
02. 还是不通检查ssh是否设置错误 或 ansible内置参数设置错误
  1. 问题二: 提示Permission denied (没公钥信息)
    172.16.1.41 | UNREACHABLE! => {
        "changed": false, 
        "msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).", 
        "unreachable": true
    }
    排错:
    01. 分发公钥信息
  1. 问题三: No hosts matched (主机信息不匹配)
    [root@m01 ansible]# ansible 172.16.1.31 -m ping
    [WARNING]: Could not match supplied host pattern, ignoring: 172.16.1.31
    [WARNING]: No hosts matched, nothing to do
    排错:
    01. 修改主机清单信息
    只有主机清单中定义主机信息,可以被ansible管理
上一篇 下一篇

猜你喜欢

热点阅读