运维自动化工具: Ansible、SaltStack、Puppet、Fabric等
Ansible官方中文手册
https://docs.ansible.com/ansible/latest/index.html
Ansible是一种集成IT系统的配置管理、应用部署、执行特定任务平台
Ansible特点:
部署简单,只需在主控端部署 Ansible 环境,被控端无需做任何操作。
默认使用 SSH(Secure Shell)协议对设备进行管理。
主从集中化管理。
配置简单、功能强大、扩展性强。
支持 API 及自定义模块,可通过 Python 轻松扩展。
通过 Playbooks 来定制强大的配置、状态管理。
对云计算平台、大数据都有很好的支持。
提供一个功能强大、操作性强的 Web 管理界面和 REST API 接口 —- AWX 平台。
一、ansible安装
rpm软件包
ansible-2.4.2.0-2.el7.noarch.rpm python-paramiko-2.1.1-4.el7.noarch.rpm
python2-jmespath-0.9.0-3.el7.noarch.rpm python-passlib-1.6.5-2.el7.noarch.rpm
python-httplib2-0.9.2-1.el7.noarch.rpm sshpass-1.06-2.el7.x86_64.rpm
#yum -y install *.rpm
安装完成以后执行,没有报错,正确显示版本即可
ansible –version
ansible 的配置文件是 ansible.cfg
ansible.cfg 的查找顺序是
1 、ANSIBLE_CONFIG 变量定义的配置文件
2 、当前目录下的 ./ansible.cfg 文件
3 、前用户家目录下 ~/ansible.cfg 文件
4 、/etc/ansible/ansible.cfg 文件
ansible.cfg 中 inventony 指定主机分组文件的路径和地址,默认分组文件 hosts
hosts 的配置
[web]
web[1:2]
[db]
db1
db2
[app:children] # 指定子组
web
db
[app:vars]
ansible_ssh_user="root"
ansible_ssh_pass="123456"
[other]
cache ansible_ssh_user="root" ansible_ssh_pass="123456"
创建密钥对 id_rsa 是私钥, id_rsa.pub 是公钥
ssh-keygen -t rsa -b 2048 -N ''
给所有主机部署密钥
ansible all -m authorized_key -a "user=root exclusive=true manage_dir=true key='$(< /root/.ssh/id_rsa.pub)'" -k
ansible 命令基础
ansible 主机分组 -m 模块 -a '命令和参数'
模块
ansible-doc -l 命令查看到当前 ansible 都支持哪些模块
ansible-doc -s 模块名 又可以查看该模块有哪些参数可以使用
常用模块
1、ping模块
2、raw模块
3、yum模块
4、apt模块
5、pip模块
6、synchronize模块
7、template模块
8、copy模块
9、user 模块与group模块
10、service 模块
11、get_url 模块
12、fetch模块
13、file模块
14、unarchive模块
15、command 模块和shell
playbook
Playbooks是Ansible的配置,部署和编排语言。它们可以描述您希望远程系统执行的策略,或一般IT流程中的一组步骤。
Playbooks 语言是以YAML 格式表示。
YAML 语法:
a、对于Ansible来说,几乎每个YAML文件都以列表开头。列表中的每个项目是 键/值对的列表,通常称为“列表”或“字典”。因此,我们需要知道如何在YAML中编写列表和字典。
b、每个文件都是以 — 开始,以 … 结尾。这也是yaml 语言格式的一部分,指出文档的开始和结束。
c、列表中所有的词都是 – (减号和空格)开头的相同缩进的行。
#vim myping.yml
—
– hosts: all
remote_user: root
tasks:
– ping:
给所有主机添加用户 lxy,设置默认密码 123456,要求第一次登录修改密码
—
– hosts: web
remote_user: root
tasks:
– name: aaabbb
user: name="lxy" group="wheel"
– name: xxx
shell: echo 123456 |passwd –stdin lxy
– name: ooo
shell: chage -d 0 lxy
未经允许不得转载:天府数据港官方信息博客 » Ansible入门
客官点个赞呗! (0)