1. 自动化运维工具的分类
- os provisioning
cobbler(补鞋匠):快速建立 Linux 网络安装环境
- os config(配置,部署,多级调用)
ansible:2012年开源,轻量级,无需代理客户端agent。
Red Hat Ansible Tower :可视化环境
2. Ansible的架构
- ansible :核心
- host inventory(清单): 注册可管理的主机host,包括IP地址,端口,账号,密码等,同时可对主机基于角色进行分组。
- playbooks:剧本,使用yaml格式进行创建,可以多次调用,结果幂等,并不会多次创建
- core modules: 核心日常模块。可以创建任务task。
- custom modules: 自定义模块。可任何语言编写。
- plugins:
- connection plugins: 连接插件。通常使用了python自带的jinjia2,PyYAML 等类库。
- host:
3.Ansible 的安装部署
国内加速站点:https://www.newbe.pro/Mirrors/Mirrors-Ansible/
本文是在内网环境下的离线安装操作过程,初始环境为redhat 6.4,python 2.6.6,ansible 1.7.2. 具体过程如下:
- 下载所需的软件包
- python2.7 安装
# tar xvzf Python-2.7.8.tgz
# cd Python-2.7.8
# ./configure --prefix=/usr/local
# make --jobs=`grep processor /proc/cpuinfo | wc -l`
# make install
## 将python头文件拷贝到标准目录,以避免编译ansible时,找不到所需的头文件
# cd /usr/local/include/python2.7
# cp -a ./* /usr/local/include/
## 备份旧版本的python,并符号链接新版本的python
# cd /usr/bin
# mv python python2.6
# ln -s /usr/local/bin/python .
## 修改yum脚本,使其指向旧版本的python,已避免其无法运行
# vim /usr/bin/yum
#!/usr/bin/python 更改为
#!/usr/bin/python2.6
- setuptools模块安装
# tar xvzf setuptools-7.0.tar.gz
# cd setuptools-7.0
# python setup.py install
- pycrypto模块安装
# tar xvzf pycrypto-2.6.1.tar.gz
# cd pycrypto-2.6.1
# python setup.py install
- PyYAML模块安装
# tar xvzf yaml-0.1.5.tar.gz
# cd yaml-0.1.5
# ./configure --prefix=/usr/local
# make --jobs=`grep processor /proc/cpuinfo | wc -l`
# make install
---------------------
# tar xvzf PyYAML-3.11.tar.gz
# cd PyYAML-3.11
# python setup.py install
- Jinja2模块安装
# tar xvzf MarkupSafe-0.9.3.tar.gz
# cd MarkupSafe-0.9.3
# python setup.py install
-------
# tar xvzf Jinja2-2.7.3.tar.gz
# cd Jinja2-2.7.3
# python setup.py install
- paramiko模块安装
# tar xvzf ecdsa-0.11.tar.gz
# cd ecdsa-0.11
# python setup.py install
--------------------------
# tar xvzf paramiko-1.15.1.tar.gz
# cd paramiko-1.15.1
# python setup.py install
- simplejson模块安装
# tar xvzf simplejson-3.6.5.tar.g
# cd simplejson-3.6.5
# python setup.py install
- ansible安装
# tar xvzf ansible-1.7.2.tar.gz
# cd ansible-1.7.2
# python setup.py install
- ansible 配置
# 生成rsa格式密钥(ansible主机上)
ssh-keygen -t rsa
# 把公钥写入到远端主机(被管理机)的~/.ssh/authorized_keys,命令如下:
ssh-copy-id username@xxxx(远程主机ip)
# 复制ansible 安装包中的配置文件和主机文件到/etc/ansible 目录下
mkdir -p /etc/ansible
cp hosts /etc/ansible/hosts
cp ansible.cfg /etc/ansible/
# 管理机设置默认远程用户
vim /etc/ansible/ansible.cfg
remote_user = username
# 添加hosts主机清单
vim /etc/ansible/hosts
- ansible 简单验证
ansible --version
ssh hdm@xxxx.20.225.xxx 'date'
ansible xxx.20.225.xxx -m shell -a 'date;df -h'
ansible xxx.20.225.xxx -m shell -a 'hostname' -o
本文暂时没有评论,来添加一个吧(●'◡'●)