styxmx 发表于 2018-7-29 10:59:52

Ansible 二(新手上路)

  Ansible 二(新手上路)
  1.远程连接概述
  远程控制:
  ansible1.2版本及以前的版本,默认使用python写的paramiko模块进行控制linux主机。
  ansible1.3版本以后,默认使用openssh进行控制linux主机,并开启了ControlPersist来优化连接速度和认证(centos6.0/RHEL6以后全已经支持)。
  远程传输:
  默认使用SFTP传输;如果不支持可以修改配置文件为SCP模式传输。
  ansible配置文件详解:http://www.ansible.com.cn/docs/intro_configuration.html
  远程密钥
  ansible会默认假定使用ssh key (推荐使用);
  也可以通过密码:--ask-pass 或--ask-sudo-pass 使用密码;
  2.第一条命令
  准备环境:
  1.ansible管理机配置
  配置linux客户机ip或者域名:
      more /etc/ansible/hosts  
      1.1.1.2
  
      1.1.1.3
  2.ansible管理机生成ssh公钥和私钥
  ssh-keygen   #创建密码
  回车         #提示回车最后会生成
  输入加密的密码(这里可以不输入密码,直接回车;)
  再次输入加密的密码
  生成的私钥和公钥放在/root/.ssh/目录下

  3.设定远程使用ssh key方式
  ssh-agent bash
  ssh-add ~/.ssh/id_rsa
  4.将公钥拷贝到linux客户机
  ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22 root@1.1.1.2
  ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22 root@1.1.1.3
  5.运行第一个测试命令,ping所以的节点
    ansible all -m ping  
    返回如下:
  
    1.1.1.2 | SUCCESS => {
  
    "changed": false,
  
    "ping": "pong"
  
    }
  
    1.1.1.3 | SUCCESS => {
  
    "changed": false,
  
    "ping": "pong"
  
    }
  以test01身份ping所以主机
  6.对所以节点运行一个命令
    ansible all -a "/bin/echo hello"  
    返回如下:
  
    1.1.1.2 | SUCCESS | rc=0 >>
  
    hello
  
    1.1.1.3 | SUCCESS | rc=0 >>
  
    hello
  报错信息:
  报错1:
  "msg": "Failed to connect to the host via ssh: ssh: connect to host 1.1.1.3 port 22: Connection refused\r\n
  原因:
  1、22端口没有打开,开启ssh服务,防火墙允许端口;
  2、默认22端口已经修改成别的端口号;
  解决办法:
  修改remote_port端口号为远程端口号,所以的linux客户机远程端口尽量一致,简化管理。
  例如:远程端口号为10000,修改如下:
  remote_port = 10000
  然后在运行命令。
  报错2:
  The authenticity of host '1.1.1.2 (1.1.1.2)' can't be established.
  ECDSA key fingerprint is 05:51:e5:c4:d4:66:9b:af:5b:c9:ba:e9:e6:a4:2b:fe.
  Are you sure you want to continue connecting (yes/no)?
  原因:
  在首次连接或者重装系统之后会出现检查keys 的提示
  解决办法:
  看Ansible 三(公钥认证)
页: [1]
查看完整版本: Ansible 二(新手上路)