美文网首页
2019-08-21 ansible安装及主机清单

2019-08-21 ansible安装及主机清单

作者: 麟之趾a | 来源:发表于2019-08-21 17:30 被阅读0次

    昨日补充

    远程服务的配置文件

    /etc/ssh/sshd_config   ssh服务端配置文件
    /etc/ssh/ssh_config    ssh客户端配置文件
    

    ssh服务端配置文件说明

    Port 22 ssh服务的端口号
    ListenAddress 0.0.0.0 ssh服务监听的地址
    PS:服务监听的地址必须是本机系统有的IP地址
    PermitEmtyPassword no 是否允许空密码登录
    PermitRootLogin yes 是否允许root用户登录
    PasswordAuthentication yes 是否允许密码登录
    GSSAPIAuthentication yes 是否允许GSSAPI认证,影响ssh的连接效率
    useDNS yes 是否允许DNS反向解析,影响ssh的连接效率
    

    ssh的防范措施

    1 .尽量使用秘钥认证,不要使用密码认证(密码要满足一定复杂度.定期修改)
    2 .架构中的服务器,尽量不要配外网IP
    3 .ssh服务只监听内网IP
    4 .硬件防火墙的防护,根据业务情况,做访问控制 ACL安全策略(路由器) ASA(思科硬件防火墙)
    5 .监控系统重要文件和目录是否被修改
    6 .锁定系统重要文件
    (1) 用户方面 /etc/passwd /etc/shadow /etc/group /etc/groupshadow
    (2) 服务程序方面 /etc/profile.d /etc/rc.local cron(定时任务文件)
    (3) 系统相关的: /etc/profile ~/.bashrc ~//bash_profile

    批量管理服务的介绍

    并行管理多台主机

    a .实现批量分发数据
    b .实现批量部署软件
    c .实现批量收集信息(资产管理)
    d .实现批量自动化管理 代码上线,服务重启

    ansible软件的优点

    a .安装部署简单
    b .无daemon,修改配置,无需重启服务
    c .不需要客户端,linux基于ssh通信
    d .功能强大

    ansible的部署过程

    管理端

    1)配置epel源
    wget -O /etc/yum.repos.d/epel.repo     http://mirrors.aliyun.com/repo/Centos-7.repo
    2)安装ansible
    yum -y install ansible
    

    被管理端

    确认selinux和防火墙是否关闭
    

    配置anisble软件的主机清单inventory

    配置文件/etc/ansible/hosts
    方法一:直接写入ip地址
    vim /etc/ansible/hosts
    172.16.1.31
    172.16.1.41
    172.16.1.7
    方法二:写入主机组
    vim /etc/ansible/hosts
    [rsync_server]
    172.16.1.41
    [rsync_client]
    172.16.1.31
    172.16.1.8
    方法三:嵌套写入主机组
    vim /etc/ansible/hosts
    [rsync:children]   #":children"是嵌入式主机组的固定格式
    rsync_server
    rsync_client
    [rsync_server]
    172.16.1.41
    [rsync_client]
    172.16.1.31
    172.16.1.8
    
    方法四:写入主机参数信息(内置变量)
    vim /etc/ansible/hosts
    [rsync_server]
    172.16.1.41  ansible_user=root ansible_password=123456 ansible_port=22
    [rsync_client]
    172.16.1.31
    172.16.1.8
    ==================================================================
    ansible_user 连接远程端的用户
    ansible_password 远程端用户的密码
    anisble_port 连接的端口号
    ansible_host 连接远程主机的ip地址,可以用来设置别名
    方法五:组变量
    vim /etc/ansible/hosts
    [rsync_server]
    172.16.1.41
    [rsync_client]
    172.16.1.31
    172.16.1.8
    [rsync_server:vars]    #":vars"是设置组变量的固定格式
    anisble_user=root
    anisble_password=123456
    ansible_port=222
    方法六:使用匹配符号信息
    [rsync_server]
    172.16.1.[1:4]   #表示172.16.1.1~172.16.1.4中所有主机
    web-[a:e].odlboy.edu  #表示web-a.oldboy.edu~web-e.oldboy.edu中所有主机
    

    ansible模块
    如何学习模块

    1 .简单理解模块的使用
    2 .查看模块的详细说明
    3 .掌握模块的参数使用方法(根据样例学习参数)

    ansible返回颜色的含义

    绿色: 对主机信息进行查看,操作执行成功
    黄色: 对主机做出了改变
    粉色: 给出的一些警告信息,忠告和建议
    红色: 报错提示信息

    1 .command模块,ansible的默认模块,但不支持一些特殊符号的使用如;,>,>>,|
    [root@m01 ~]# ansible all -m command -a "hostname"
    172.16.1.41 | CHANGED | rc=0 >>
    backup
    172.16.1.31 | CHANGED | rc=0 >>
    nfs01
    172.16.1.7 | CHANGED | rc=0 >>
    web01
    2. shell模块,ansible的万能模块,相当于bash
    [root@m01 ~]# ansible all -m shell -a "cd /tmp;pwd"
    172.16.1.31 | CHANGED | rc=0 >>
    /tmp
    172.16.1.41 | CHANGED | rc=0 >>
    /tmp
    172.16.1.7 | CHANGED | rc=0 >>
    /tmp
    
    3.script模块,允许在远程端执行脚本文件,不需要把脚本复制到远程端,也不需要给脚本加入执行权限
    [root@m01 /server/scripts]# ll ansible_test.sh 
    -rw-r--r-- 1 root root 26 Aug 21 15:58 ansible_test.sh
    [root@m01 /server/scripts]# ansible all -m script -a "ansible_test.sh"
    172.16.1.41 | CHANGED => {
        "changed": true, 
        "rc": 0, 
        "stderr": "Shared connection to 172.16.1.41 closed.\r\n", 
        "stderr_lines": [
            "Shared connection to 172.16.1.41 closed."
        ], 
        "stdout": "", 
        "stdout_lines": []
    }
    172.16.1.31 | CHANGED => {
        "changed": true, 
        "rc": 0, 
        "stderr": "Shared connection to 172.16.1.31 closed.\r\n", 
        "stderr_lines": [
            "Shared connection to 172.16.1.31 closed."
        ], 
        "stdout": "", 
        "stdout_lines": []
    }
    172.16.1.7 | CHANGED => {
        "changed": true, 
        "rc": 0, 
        "stderr": "Shared connection to 172.16.1.7 closed.\r\n", 
        "stderr_lines": [
            "Shared connection to 172.16.1.7 closed."
        ], 
        "stdout": "", 
        "stdout_lines": []
    }
    

    作业

    1.如下参数的作用

        ansible_become        是否进行强制升级
        ansible_become_method  升级的方法sudo或su
        ansible_become_user    升级成什么用户
        ansible_become_password  su或sudo的密码
    
    [root@m01 /server/scripts]# cat /etc/ansible/hosts
    [oldboy]
    172.16.1.41 ansible_ssh_user=oldboy ansible_ssh_pass=123456 ansible_become_password=123456 ansible_become_user=root ansible_become=yes ansible_become_method=su
    172.16.1.31 
    172.16.1.7 ansible_ssh_user=oldboy ansible_ssh_pass=123456 ansible_become_password=123456 ansible_become_user=root ansible_become=yes ansible_become_method=sudo
    [root@m01 /server/scripts]# ansible 172.16.1.7 -a "whoami"
    172.16.1.7 | CHANGED | rc=0 >>
    root
    [root@m01 /server/scripts]# ansible 172.16.1.41 -a "whoami"
    172.16.1.41 | CHANGED | rc=0 >>
    root
    

    2 . 以下两个模块的作用

     expect – Executes a command and responds to prompts
     telnet – Executes a low-down and dirty telnet command
    
    expect个人理解:执行命令command,是使用responses给出的响应进行免交互????
    telnet 模块及telnet命令,user登录的用户名,password登录的密码
    host登录的主机IP如果不指定默认远程用户ip,command执行的命令(必须有的)?command执行的命令,所见即所得?,一般用来连接网络设备使用
    [root@m01 /server/scripts]# ansible web01 -m telnet -a "command=whoami user=oldboy password=12345"
    web01 | CHANGED => {
       "changed": true, 
       "output": [
           "\u001b[0mwhoami\r\noldboy\r\n\u001b[34;1m[oldboy\u001b[35;1m@\u001b[31;1mweb01 ~]$ "
       ]
    }
    
    

    3.免交互式 输入yes或no

    ansible利用域名管理主机时, 每次都需要有yes/no确认, 如何实现免交互 
    1)vim /etc/ssh/ssh_config
     35    StrictHostKeyChecking no
    2)vim /etc/ansilbe/ansible.cfg
     71 host_key_checking = False
    
    

    相关文章

      网友评论

          本文标题:2019-08-21 ansible安装及主机清单

          本文链接:https://www.haomeiwen.com/subject/jozbsctx.html