• ansible


    yum 安装ansible

    [root@jenkins ~]# yum install epel-release -y
    [root@jenkins ~]# yum install ansible -y
    

    添加节点设备

    在host文件中添加主机名

    [root@jenkins ~]# cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.0.150 jenkins
    192.168.0.160 jenkins-slave
    

    配置免密登录方式

    创建master节点的ssh public key

    [root@jenkins ~]# ssh-keygen -t rsa
    

    将key分发到要管理的设备jenkins-slave

    [root@jenkins ~]# ssh-copy-id   root@jenkins-slave
    

    也可以提前在其他节点设备提前写入ssh key

    echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC59QCKYQVDrn1/Qj7SFGwCQlpAp+WuxYgnwh9lLuxBVrW+ri6fZN9swA5avXhUIEbRTHIQgF5BotnShaz2+Hk9caiBDDtdwl8C1sA79cUYZP9D3xYwxPrN5G1ZIqk/g//IhZ8A+I7kYt1dc+XnpUfmhbIcq8LhF2TYsX0LU2HLxngtx4779CEaiVq+CCjbSXzcNoU2IF39IaqV+YttURgiv1sbWZBlo/ADp9P153MqqNa6O+d/RbkgXCOWNiwIe39vNy8hN79MaPVjY9ySLro+celMPSgNkT/j8IdPkUm8cpJDb6R7Mg1cwdhi97pJ2jR8wY9KtNIdmSfsm1p5+DCx root@jenkins" >> /root/.ssh/authorized_keys
    

    修改 /etc/ssh/sshd_config中参数加速远程登录

    UseDNS no
    GSSAPIAuthentication no
    

    在ansible中配置设备列表清单

    ansible 在 /etc/ansible/hosts 定位设备列表,一行只能定义一台设备,设备表示不能重复。

    例1:未分组的主机,请在任何组头之前指定(必须写在文件的最前面,否则无法识别),这些主机可以填入IP地址或者主机名。

    [root@jenkins ansible]# cat /etc/ansible/hosts
    jenkins
    jenkins-slave
    192.168.0.150
    192.168.0.160
    

    例2:属于“jenkins”组的主机集合(定义几台设备到一个主机组中,主机组名称不能和主机名称相同)

    jenkins
    jenkins-slave
    192.168.0.150
    192.168.0.160
    
    
    [jenkinsserver]
    jenkins
    jenkins-slave
    

    例3:也可以用如下方式定义一组服务器

    web-[99:101]-node.example.com
    

    定义了web-99-node.example.com web-100-node.example.com web-101-node.example.com 这3台服务器

    例4:一个组也可以是另外一个组的成员

    [servertest:children]
    jenkinsserver
    

    如果管理的设备没有开启免密登录,可以在hosts文件中配置期账号密码等登录信息

    test ansible_ssh_host=192.168.0.160 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=123456
    

    同时需修改配置文件/etc/ansible/ansible.cfg中ssh_args参数,添加 -o StrictHostKeyChecking=no 或者 开启参数 host_key_checking = False

    ssh_args =  -C  -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no
    host_key_checking = False
    

    否则出现如下错误:

    FAILED! => {
        "msg": "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this.  Please add this host's fingerprint to your known_hosts file to manage this host."
    }
    
    
    参数 解释
    ansible_ssh_host 将要连接的远程主机名.与你想要设定的主机的别名不同的话,可通过此变量设置.
    ansible_ssh_port ssh端口号.如果不是默认的端口号,通过此变量设置.
    ansible_ssh_user 默认的 ssh 用户名
    ansible_ssh_pass ssh 密码(这种方式并不安全,我们强烈建议使用 --ask-pass 或 SSH 密钥)
    ansible_sudo_pass sudo 密码(这种方式并不安全,我们强烈建议使用 --ask-sudo-pass)
    ansible_sudo_exe (new in version 1.8) sudo 命令路径(适用于1.8及以上版本)
    ansible_connection 与主机的连接类型.比如:local, ssh 或者 paramiko. Ansible 1.2 以前默认使用 paramiko.1.2 以后默认使用 'smart','smart' 方式会根据是否支持 ControlPersist, 来判断'ssh' 方式是否可行.
    ansible_ssh_private_key_file ssh 使用的私钥文件.适用于有多个密钥,而你不想使用 SSH 代理的情况.
    ansible_shell_type 目标系统的shell类型.默认情况下,命令的执行使用 'sh' 语法,可设置为 'csh' 或 'fish'.

    上表只是列出部分参数,最新的详细参数信息请查询官网。

  • 相关阅读:
    烦人的微软拼音
    android sdk manager 不能连接到https://dl-ssl.google.com
    js 截屏
    计算机的发展史
    python全栈课程内容
    内置函数
    mapfilter educe
    函数式编程->reduce
    函数式编程
    函数式编程->map
  • 原文地址:https://www.cnblogs.com/panjunbai/p/11456650.html
Copyright © 2020-2023  润新知