首页 > 分享 > 自动化运维—Ansible

自动化运维—Ansible

前言

Ansible是自动化运维的工具,基于Python开发,实现了批量系统配置、批量程序部署、批量运行命令等功能。

Ansible是基于模块工作的,ansible提供一个框架,通过模块实现批量部署。

一、 安装,使用

1 安装Ansible

使用epel的源安装,添加epel源此处不详述。

1

# yum install ansible --enablerepo=epel

2 设置密钥登录

生成SSH公钥密钥对

1

# ssh-keygen -t rsa -P ''

拷贝公钥到被管理端的服务器

1

2

# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

# chmod 600 /root/.ssh/authorized_keys

确认可以用密钥连接到管理端的服务器

3 配置Ansible

定义主机组,可以使用主机名或IP

1

2

3

4

# vi /etc/ansible/hosts

[tests]

test167

test154

另外,Ansible的配置文件在 /etc/ansible/ansible.cfg,默认不需要修改。

4 使用Ansible

1. Ping模块

1

# ansible tests -m ping

2. 执行命令,command、shell模块

1

2

3

4

# ansible tests -m command -a 'uptime'

# ansible tests -m shell -a 'date'

# ansible tests -m command -a 'cat  /etc/resolv.conf'

3 .查看配置,setup模块

1

# ansible tests -m setup

4 .拷贝文件,copy模块

1

# ansible tests -m copy -a 'src=/home/ec2-user/test.txt dest=/tmp/test222.txt mode=0644'

5 .添加用户,user模块

1

# ansible tests -m user -a 'name=test comment="test user" uid=1000 password="crypted-password"'

密码生成方法:

1

2

3

4

# yum install python-pip

# pip install passlib

# python -c "from passlib.hash import sha512_crypt; import getpass; print sha512_crypt.encrypt(getpass.getpass())"

6 .安装软件,yum模块

1

# ansible tests -m yum -a 'name=vsftpd state=present'

7. 启动服务,设置开机自启动,service模块

1

# ansible tests -m service -a 'name=vsftpd state=started enabled=yes'

查看

1

2

# ansible tests -m shell -a 'ps -ef| grep ftp'

# ansible tests -m shell -a 'ss -tln| grep 21'

8 .支持管道,raw,shell模块

1

# ansible tests -m raw -a 'ss -tln| grep 21'

5 其他命令

1 .查看帮助

列出所有已安装模块

查看某模块的简介

2 .ansible-pull

使用pull模式,(默认是push模式)

二、 Playbook文件

Playbook是由一个或多个“play”组成的列表,可以让它们联同起来按事先编排的机制执行

1

# ansible-playbook test.yml

Playbook文件的格式,YAML是一个可读性高的标记语言。

Role可以把playbook分成一个一个模块,使结构更清晰。

1 Role的构造

包括 tasks, defaults, vars, files, templates, mata, handlers 各目录,其中 tasks 是必需的。

2 Role的例子

本例子是最基本的构成,只包括tasks

1. 创建目录 roles/apache2/tasks

1

# mkdir -p roles/apache2/tasks

2 .创建 tasks/main.yml

1

2

3

4

5

6

7

8

---

- name: Install apache2 (RedHat).

  yum: name=httpd

  when: "ansible_os_family == 'RedHat'"

- name: Install apache2 (Debian).

  apt: name=apache2

  when: "ansible_os_family == 'Debian'"

3 .创建 Playbook (site.yml)

1

2

3

4

5

6

7

---

- name: Install Apache2

  hosts: tests

  remote_user: root

  roles:

    - apache2

4 .执行

1

# ansible-playbook site.yml

3 官方的playbook例子

https://github.com/ansible/ansible-examples

4 playbook文件加密

ansible-vault 对配置文件(比如playbooks),进行基于密码的加密,防止敏感信息泄露

1. 加密已存在文件

1

# ansible-vault encrypt ./site.yml

2 .加密并创建文件

1

# ansible-vault create filename

加密后的playbook

3 .执行加密后的playbook

1

# ansible-playbook ./site.yml --ask-vault-pass

4 .解密

1

# ansible-vault decrypt ./site.yml

三、 后记

Ansible使用简单,不需要客户端,模块化程度高,定制灵活,当管理服务器的数量多的时候,能起到很大的帮助。是一个很好的自动化运维工具。创建了一个测试交流群,如果对软件测试、接口测试、自动化测试、面试经验交流感兴趣可以加测试交流群:829792258,还会有同行一起技术交流  

相关知识

ansible register when: result
机器学习运维简历模板
指动见电力智能运维app下载
“XCOPS智能运维管理人年会”全面升级,重磅启动2023年度十佳奖项评选
无网特种设备如何安全实施远程运维?向日葵无网远控方案解析
XCOPS智能运维管理人年会“2023年度十佳奖项评选”正在火热征集中
甘肃省疾病预防控制中心实验室信息管理系统运维项目中标公告
机器人流程自动化+机器学习=智能自动化
自动化改造吧
【自动化笼养设备】

网址: 自动化运维—Ansible https://m.mcbbbk.com/newsview831089.html

所属分类:萌宠日常
上一篇: 平凉市养犬登记办理图文解读
下一篇: 速览!文明养犬登记流程来了