Ansible配置及使用

使用公私钥实现ssh无密码登录

  1. 生成公钥和私钥

    ssh-keygen -t rsa

    公钥相当于锁id_rsa.pub,私钥相当于钥匙id_rsa

  2. 借用ssh-copy-id工具实现无密码登录

    ssh-copy-id -i /root/.ssh/id_rsa.pub 39.105.47.177 #公钥上传到服务器

    ssh -i /root/.ssh/id_rsa 39.105.47.177 #使用对应的私钥登录服务器

Ansible配置

Ansible的默认配置文件路径是在/etc/ansible/hosts

  1. 创建Ansible配置文件

    [root@vagrant2 local]# mkdir /etc/ansible/
    [root@vagrant2 local]# touch hosts
    
  2. 配置Ansible配置文件

    [test]
    vm_01 ansible_ssh_port=22 ansible_ssh_host=127.0.0.1 ansible_ssh_pass='vagrant'
    vm_02 ansible_ssh_port=10022 ansible_ssh_host=39.105.47.177 ansible_ssh_pass='sxsds231AA'
    

    [test]代表test主机组,vm_01,vm_02代表主机,属于test主机组。其余为主机IP,端口以及密码

    如果机器免密码都做好的话,配置文件可以省略密码配置。

  3. 使用ping模块查看在主机是否连接正常,ping模块不需要 -a 指定参数

    ansible test -m ping # test 为指定主机组,可用all参数代替,指定所有主机组主机, -m为指定ping模块

    用密码操作的话必须安装”sshpass“工具,yum装一下yum install -y sshpass,然后再来操作一下。

    这个大概意思说需要把主机的指纹添加到known_hosts里,命令行ssh 这个主机输入yes,将主机的指纹添加到known_hosts里。

    然后再用ansible test -m ping 查看主机是否连接正常。

    测试的两台主机均已联通,代表我们现在可以批量管理这两台服务器了。

    Ansible命令模块

    ansible的三个命令模块:command、shell、raw,这三个模块的参数就直接输入命令即可。

    1. ansible模块command(不支持管道,不建议使用)

      ansible [指定主机or主机组or全部主机] -m command -a 'shell命令'

      输出两台主机的磁盘空间情况

      ansible的command模块不支持管道,使用就会报错

    2. ansible模块shell(支持管道)

      ansible [指定主机or主机组or全部主机] -m shell -a 'shell命令'

    3. ansible模块raw,最原始ssh的方式运行命令

      ansible [指定主机or主机组or全部主机] -m raw -a 'shell命令'

      raw指定主机安装yum

posted @ 2019-08-25 16:24  大胡子哥dhzg  Views(336)  Comments(0)    收藏  举报