qq489498494 发表于 2018-7-29 09:34:04

企业轻量级自动化运维工具—ansible(常见的错误解决,免秘钥互信,常用的模块)

企业轻量级自动化运维工具—ansible
  1.ansible简介
  ansible是“Ansible is Simple IT Automation”——简单的自动化IT工具。它可以做到自动化部署APP;自动化管理配置项;自动化的持续交付;自动化的(AWS)云服务管理。可实现多节点的软件部署,执行特定任务并进行配置管理。
  2.安装前准备
  1.准备三台主机
  192.168.122.22      服务端
  192.168.122.21          客户端
  192.168.122.18      客户端
  2.时间同步
  3.关闭防火墙和SELinux
  3.安装
  1.配置yum源
  # yum install -y http://mirrors.aliyun.com/centos/7.3.1611/extras/x86_64/Packages/epel-release-7-9.noarch.rpm
  2.安装
  # yum install -y ansible
  3.查看帮助
  # ansible –h
  4.查看版本
  # ansible --version
  5.ansible模块
  ansible是指令核心部分,其主要用于执行ad-hoc命令,即单条命令。默认后面需要跟主机和选项部分,默认不指定模块时,使用的是command模块。安装完ansible后,发现ansible一共为我们提供了七个指令:ansible、ansible-doc、ansible-galaxy、ansible-lint、ansible-playbook、ansible-pull、ansible-vault 。

  1.列出所有已安装的模块
  # ansible-doc –l
  2.查看某一个模块的用法
  # ansible-doc –h
  # ansible-doc -s yum         //查看yum的用法
  3.ansible-playbook
  该指令是使用最多的指令,其通过读取playbook 文件后,执行相应的动作。
  4.配置hosts和group
  192.168.122.22      root用户                   密码123456
  192.168.122.18      user1用户       密码user1
  192.168.122.21      user2用户       密码123         端口2222
  # vim /etc/ssh/ssh_config                   //改变端口的文件
  # systemctl restart sshd            //重启服务
  # vim hosts         //默认的hosts文件在/etc/hosts里,这里我们可以用-i来指定路径

  这里我们查看时会报错是因为它没有加载到自身。有三种解决办法。
  方法一:
  1.重新连接自己
  # ssh 192.168.122.22

  2.exit登出
  # exit
  3.重新执行

  此时会发现执行成功。这是因为多了一个文件

  方法二:
  在服务端:进行ssh连接时,可以使用-o参数将StrictHostKeyChecking设置为no,使用ssh连接时避免首次连接时让输入yes/no部分的提示。
  # vim /etc/ansible/ansible.cfg
  将#ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s修改为ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no

  方法三:
  # vim /etc/ansible/ansible.cfg
  将#host_key_checking = False的#去掉。

  5.使用all查看hosts中所有机器的情况


  6.ansible的配置文件
  # vim /etc/ansible/ansible.cfg
  7.定义多个主机与组可以进行与或非的逻辑关系运算
  :或         !非         &与
  8.ssh的免秘钥互信
  在192.168.122.22上操作

  # ssh-copy-id 192.168.122.22       //给自己拷
  验证是否成功

  6.ansible常用模块
  1.ping模块:测试主机是否能ping通

  2.setup模块:获取主机信息
  # ansible-doc -s setup         //查看帮助
  # ansible localhost -m setup         //查看内存信息
  # ansible -i hosts arethon -m setup    //查看所有信息
  # ansible -i hosts arethon -m setup -a 'filter=ansible_*ipv4'                                       //过滤ipv4的信息
  3.file模块:远程主机上的文件操作
  # ansible-doc -s file            //查看帮助
  # ansible localhost -m file -a 'src=/etc/hosts dest=/tmp/hosts state=link' 链接

  查看:

  4.copy模块
  # ansible-doc -s copy       //查看帮助
  # ansible -i hosts arethon -m copy -a 'src=test.txt dest=/tmp'                   //把test.txt文件拷贝到另外两台主机上
  5.command模块
  # ansible -i hosts 192.168.122.18 -a 'df -h'//查看192.168.122.18的磁盘

  执行已有命令时则自动跳过所有,结束。
页: [1]
查看完整版本: 企业轻量级自动化运维工具—ansible(常见的错误解决,免秘钥互信,常用的模块)