Ansible 使用记录

平台运维需要,开始使用ansible使自动化管理的一些记录。

  • Ansible安装与基本配置
  • Ansible的运行原理
  • Ansible模块化
  • Ansible简单化使用

常用模块

  • ping 模块
  • copy 模块
  • file 模块
ansible 172.16.0.14 -m file -u root -a "dest=/mnt/test.x mode=600 owner=eseals group=wheel"
ansible 172.16.0.14 -m file -u root -a "dest=~/ansib/test01/test02 mode=755 owner=root state=directory"
# 效果同 mkdir -p
  • shell
ansible 172.16.0.14 -m shell -u root -a "mkdir -p ~/ansib/test01/test02"

Ansible 安装与配置

Ansible是一种轻量级管理工具,同类软件有(puppet、cfengine、chef、func、fabric) ,同这些软件相比,它完全不用安装,甚至于管理端也不用安装,在Linux下配置好Python即可。

使用ansible 管理主机,采用证书认证方式会方便许多。

ssh-keygen -t rsa -b 4096 -f ./id_rsa  # 制作密钥对
  ssh-keygen -e -f ./id_rsa    # 显示公钥
  ssh-copy-id -i ./id_rsa root@172.16.0.18

初级使用

Ad-Hoc Commands 使用方法:

ansible all -a "/bin/echo 'hello,world'"  # 所有客户端显示..
ansible all -m shell -u root -a "echo 'hello,world'"
ansible all -m ping -u root    # ping 模块
ansible kvm -u root -a "/bin/ping -c3 www.g.cn" #ansible 直接执行命令
ansible 172.16.0.14  -m copy -u root -a "src=/mnt/test.x dest=/mnt/"
ansible 172.16.0.14 -u root -a "/bin/rm /mnt/test.x"
ansible jboss_172 -m shell -u root -a "reboot" -f 10

定义/usr/ansible/hosts文件

主机定义方法 :

主要参数:

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'.

ansible_python_interpreter
      目标主机的 python 路径.适用于的情况: 系统中有多个 Python, 或者命令路径不是"/usr/bin/python",比如  \*BSD, 或者 /usr/bin/python
      不是 2.X 版本的 Python.我们不使用 "/usr/bin/env" 机制,因为这要求远程用户的路径设置正确,且要求 "python" 可执行程序名不可为 python以外的名字(实际有可能名为python26).

      与 ansible_python_interpreter 的工作方式相同,可设定如 ruby 或 perl 的路径....

Ansible 模块众多,常用帮助信息 ansible-doc –list
例如想查找 authorized 相关模块,执行命令ansible-doc -l | grep auth

查看某个模块详细信息,可以使用以下

ansible-doc -s authorized_key

脚注

生成一个脚注1.

目录

[TOC]来生成目录:


  • Ansible 使用记录
  • 常用模块
  • Ansible 安装与配置
  • 初级使用
  • 定义usransiblehosts文件
  • 脚注
  • 目录