Linux - CentOS_7 - Python在运维中的应用、Ansible的简单使用

本文探讨了Python在运维中的应用,重点介绍了自动化运维工具Ansible的使用,包括安装、设置克隆虚拟机、管理机与被管理机的连接、ad-hoc命令的使用以及基于yml文件的批量部署。
摘要由CSDN通过智能技术生成

目录

一、Python在运维中的经典应用

二、Ansible的基本使用

2-1 ansible的安装

2-2 创建克隆虚拟机,修改ip和uuid - 模拟一台管理机和一台被管理机

2-3 机器的连接 - 管理机连接多台用户机,为ansible做准备

2-3-1 管理被控端,管理机生成秘钥,推送至公钥

2-3-2 管理机配置被管理的主机清单

2-4 ansible命令的ad-hoc(临时命令)使用 - 管理机使用ansible对指定用户机发布执行命令

2-5 ansible 实现简单的批量部署 - 使用yml文件的批量安装

2-5-0 yml文件的规范

2-5-1 准备yml文件实现自动化nginx部署

2-5-2 准备配置文件,辅助yml文件,与上方yml文件在同一路径下

2-5-3 执行yml文件


一、Python在运维中的经典应用

  • ansible

ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能

  • CMDB

CMDB存储与管理企业IT架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧密相联,支持这些流程的运转、发挥配置信息的价值,同时依赖于相关流程保证数据的准确性。

  • jumpserver 多云环境的堡垒机
  • openstack

OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。

  • K8s(go语言开发) - kubernetes

k8s是一个编排容器的工具,其实也是管理应用的全生命周期的一个工具,从创建应用,应用的部署,应用提供服务,扩容缩容应用,应用更新,都非常的方便,而且可以做到故障自愈,例如一个服务器挂了,可以自动将这个服务器上的服务调度到另外一个主机上进行运行,无需进行人工干涉。

  • dokcer (go语言开发)

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的inux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

 

二、Ansible的基本使用

2-1 ansible的安装

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

yum install ansible -y

ansible +双击TAB 查看安装完成的相关内容

 

2-2 创建克隆虚拟机,修改ip和uuid - 模拟一台管理机和一台被管理机

  • hostnamectl set-hostname standby 修改主机名

  • vim /etc/sysconfig/network-scripts/ifcfg-eth0
    • 修改静态ip地址和删除uuid
  • systemctl restart network 重启网络
     
  • vim /etc/hosts 修改主机文件的主机名和指向ip

  • 重启显示主机名信息更改

2-3 机器的连接 - 管理机连接多台用户机,为ansible做准备

  • ssh 10.0.0.200   10.0.0.100的机器shh连接200 的机子

2-3-1 管理被控端,管理机生成秘钥,推送至公钥

# 生成秘钥
ssh-keygen 

# 推送公钥给指定机器
ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.200 ​
# 若推送机较多,可使用for循环进行推送
for i in {1..12};do ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.$i;done

# 连接指定机,执行代码之后马上退出,用于测试是否连接成功
ssh 10.0.0.200 date  

2-3-2 管理机配置被管理的主机清单

  • vim /etc/ansible/hosts
[web]  # 组名配置,管理使用组名调用
10.0.0.100 # 组名管理的主机号
10.0.0.200

  • ansible web -m ping 进行连接测试web组
    • 如下报错:未给100ip的主机分配公钥
    • 成功显示

 

 

2-4 ansible命令的ad-hoc(临时命令)使用 - 管理机使用ansible对指定用户机发布执行命令

# 对所有管理主机,执行shell的df -h命令
ansible all -m shell -a "df -h" 

ansible all -m shell -a "free -m"

 

2-5 ansible 实现简单的批量部署 - 使用yml文件的批量安装

2-5-0 yml文件的规范

  • 1- 不能使用tab键
  • 2- 有严格的缩进要求·
  • 3- 需要编写配置文件辅助yml文件的实施

2-5-1 准备yml文件实现自动化nginx部署

  • vim playbook_nginx.yml
- hosts: web
  remote_user: root
  vars:
    http_port: 80
  tasks:
    - name: Add Nginx Yum Repository
      yum_repository:
        name: nginx
        description: Nginx Repository
        baseurl: http://nginx.org/packages/centos/7/$basearch/
        gpgcheck: no
​
    - name: Install Nginx Server
      yum: 
        name=nginx state=present
​
    - name: Configure Nginx Server
      template: src=./default.conf.template dest=/etc/nginx/conf.d/default.conf
      notify: Restart Nginx Server
​
    - name: Start Nginx Server
      service: name=nginx state=started enabled=yes
​
  handlers:
    - name: Restart Nginx Server
      service: name=nginx state=restarted

2-5-2 准备配置文件,辅助yml文件,与上方yml文件在同一路径下

  • vim default.conf.template
server {
    listen       {{ http_port }};
    server_name  localhost;
​
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
}

2-5-3 执行yml文件

  • 检查语法 [root@demo ~]# ansible-playbook --syntax playbook_nginx.yml
  • 模拟执行 [root@demo ~]# ansible-playbook -C playbook_nginx.yml

  • 执行 [root@demo ~]# ansible-playbook playbook_nginx.yml

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值