Ansible自动化运维神器

Ansible

  • 安装
  • 添加主机
  • ansible命令常用参数
  • 检查连接状态:
  • 批量执行命令:
  • 新建文件夹:
  • 磁盘卸载:
  • 磁盘挂载:
  • 执行shell
  • Host Key checking错误解决方案

安装

yum install epel-release -y
yum install ansible –y

添加主机

 vim /etc/ansible/hosts
[caigou]
172.255.255.255   ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='yRCDQJ3Tjy'

ansible_ssh_host # 远程主机
ansible_ssh_port # 指定远程主机ssh端口
ansible_ssh_user # ssh连接远程主机的用户,默认root
ansible_ssh_pass # 连接远程主机使用的密码,在文件中明文,建议使用–ask-pass或者使用SSH keys
ansible_sudo_pass # sudo密码, 建议使用–ask-sudo-pass
ansible_connection # 指定连接类型: local, ssh, paramiko
ansible_ssh_private_key_file # ssh 连接使用的私钥
ansible_shell_type # 指定连接对端的shell类型, 默认sh,支持csh,fish
ansible_python_interpreter # 指定对端使用的python编译器的路径

ansible命令常用参数

HOST-PATTERN #匹配主机模式,如all表示所有主机
-m :模块名 如:ping
-a ;模块执行的参数
-f :生成几个子进行程执行
-C :(不执行,模拟跑)
-u :Username #某主机的用户名
-c :连接方式(default smart)
-i :filename 指定hosts文件 默认为etc/ansible/hosts
-u :ssh连接的用户名,默认root
-k :提示输入ssh登录密码。当使用密码验证的时候用
-s : sudo运行
-U :sudo到那个用户,默认为root
-i :指定hosts文件路径,默认default=/etc/ansible/hosts
-I :指定pattern,对已匹配的主机中再过滤一次
-M :要执行的模块路径,默认为/usr/share/ansible
-o:压缩输出,摘要输出
–private-key :私钥路径

检查连接状态:

ansible all -m ping

批量执行命令:

ansible all -a "df -h"

新建文件夹:

ansible all -a "mkdir /data"

磁盘卸载:

ansible all -a "umount /data1"

磁盘挂载:

ansible all -a "mount /dev/vdb1 /data"

执行shell

首先创建一个shell脚本
vim /tmp/test.sh //加入内容

#!/bin/bash
echo `date` > /tmp/ansible_test.txt

然后把该脚本分发到各个机器上

ansible testhost -m copy -a "src=/tmp/test.sh dest=/tmp/test.sh mode=0755"

最后是批量执行该shell脚本

ansible testhost -m shell -a "/tmp/test.sh"

shell模块,还支持远程执行命令并且带管道

ansible testhost -m shell -a "cat /etc/passwd|wc -l "

Host Key checking错误解决方案

修改配置文件 vi /etc/ansible/ansible.cfg,将如下行注释取消

host_key_checking = False

你可能感兴趣的:(测试运维)