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文件
- 脚注
- 目录