创新路
我们一直在努力

Ansible入门

运维自动化工具: 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)
分享到:

评论 抢沙发

评论前必须登录!

天府云博 - 做有态度的开发&运维&设计学习分享平台!

联系我们百度云主机