ansible教程详细的,ansible常用模块有哪些
(1)下载pip
去https://pypi.python.org/pypi/pip下载第二个项目。
(2)解压安装
下载的文件(只使用解压工具,如windows上的RAR,Linux上的tar -xf pip-9.0.1.tar.gz,即tar-xf文件名),解压后
在python setup.py install 1Linux上,输入
成功安装sudo python setup.py install 1后,进入测试下
用pip -V 1解决!
一、Ansible工作机制
从图中可以看出,ansible分为以下几个部分。
1控制节点:控制设备
清单:主机列表,配置管理主机列表
3剧本:方案和任务组织。根据规则定义了若干任务,模块的组织结构清晰,ansible自动执行。
模块(核心):用于执行特定任务的模块。
5连接插件:ansi ble通过不同的协议连接到远程主机,执行指定的命令。默认情况下,ssh协议用于连接远程主机。
二。可行的执行过程
简单来说,Ansible在运行时读取ansible.cfg的配置,根据规则获取库存管理主机列表,并行执行这些主机上配置的任务,然后等待最终的运行结果。
三、安装Ansible
一台控制主机:192.168.0.202
三台管理主机:
安装要求:
服务器:需要Python2.6/2.7管理服务器:需要Python2.4或更高版本,pythonsimplejson如果小于Python2.5,则需要;如果启用了selinux,则必须安装libselinux-python。此安装基于CentOS7系统环境、Python2.7.5和root用户。
3.1、yum安装(推荐)
安装yum Epel-release
yum安装ansible
一个
2
3.2、pip安装
Pip安装简单
一个
注意:pip安装不会在/etc/ansible目录中生成默认的相关配置文件。
四、配置
控制主机:用于控制其它设备的主机。
管理主机由控制主机管理的主机
4.1、配置管理主机
vim /etc/ansible/hosts
将管理主机的IP地址列表添加到主机文件中:
4.2、配置控制主机SSH密钥
4.2.1、在控制主机中生成ssh密钥对
生成密钥
一个
当该行断开时,将在$HOME/中生成两个文件。ssh目录:id_rsa,id_rsa.put私钥和公钥。
如果在生成
注:
密钥时设置了密码,ansible将在每次运行该命令时提示您输入密钥密码,然后您可以通过以下命令记住密码:ssh-代理bsh
ssh-add ~/。ssh/id_rsa
一
2
4.2.2、将公钥拷贝到管理主机中.ssh/authorized_keys文件中,实现免密码登录远程管理主机
ssh-copy-id -i ~/。ssh/id _ RSA . pub root @ 192 . 168 . 0 . 200
ssh-copy-id -i ~/。ssh/id _ RSA . pub root @ 192 . 168 . 0 . 201
ssh-copy-id -i ~/。ssh/id _ RSA . pub root @ 192 . 168 . 0 . 203
一
2
3
注意:ssh-copy-id命令会自动将id_rsa.pub文件
追加
的内容传输到。远程主机的root用户下的ssh/authorized_keys文件。
4.2.3、ansible配置
vim /etc/ansible/ansible.cfg
一
1禁用每次执行ansbile命令时检查ssh密钥主机。
主机密钥检查=假
2打开日志记录。
log_path=/var/log/ansible.log
3可变连接加速配置
[加速]
#accelerate_port=5099
加速端口=10000
#accelerate_timeout=30
#加速连接超时=5.0
#如果设置为是,accelerate_multi_key将允许多个
#私钥上传到它,虽然每个用户必须
#通过SSH访问系统以添加新密钥。默认
#是‘否’。
accelerate_multi_key=是
五、测试
最后,在测试下,在三台管理机中批量执行一个ping命令。
易答全营
结果如下:
动词(verb的缩写)例子
[root @ localhost ~]# ansi ble 192 . 168 . 1 . 98-a touch/mnt/file 3 [DEPRECATION WARNING]:ACCELERATE _ time out选项,删除ACCELERATE作为连接方法,也不需要设置。在2.5版中将删除此功能。可以通过在ansible.cfg中设置deprecation_warnings=False来禁用弃用警告。[弃用警告]: ACCELERATE_MULTI_KEY选项,删除ACCELERATE作为连接方法,也不需要设置。在2.5版中将删除此功能。可以通过在Ansi.cfg中设置deprecation_warnings=False来禁用弃用警告。[警告]:请考虑使用state=touch的文件模块,而不是运行touch 192.168.1.98 success rc=0。请注意,该命令在-a后用双引号或单引号" "括起来,即
通用模块:
!所有示例都使用webserver作为匹配的目标主机。
1.ping
可互换的全m ping
!要检查机器是否可以登录,ping模块不需要传输参数。
!注意:这里的ping模块并不调用系统的ping命令,而是类似于登录到远程机器并回显消息。
2 .命令
!可以执行任意命令,但是不接受管道命令和重定向符号。如果要使用这些,需要使用Shell模块。
Ansible all -m command -a ls #在所有匹配的主机上执行ls命令。
行动手册:
-名称:命令测试
命令:ls
3 .复制
#将文件复制到远程服务器
ansi ble all-m copy-a src=/tmp/text . txt dest=/home/tmp/
#将本地text.txt文件复制到所有匹配主机的/home/tmp/path中。
行动手册:
-名称:复制测试
copy:src=/tmp/text . txt dest=/home/tmp/force=yes
4 .文件
此生成系统中未使用此模块。官方的解释是设置文件、文件夹或快速链接的属性,或者删除文件、快速链接和文件夹。
如果目标不存在,则创建一个文件夹
ansi ble web servers-m file-a path=/tmp/tdir state=directory mode=0755
剧本
- name:如果目录不存在,则创建一个目录
-文件:
路径:/etc/some_directory
州:目录
型号:0755
5 .获取网址
!将文件从服务器下载到远程主机指定的目录。
ansi ble web servers-m get _ URL-a URL= http://Baidu . com dest=/tmp/ba . html
剧本
-名称:下载foo.conf
获取网址:
网址:http://example.com/path/file.conf
dest: /etc/foo.conf
模式:0440
6 .好吃
特别是对于一些依赖包的批量安装。
ansi ble web servers-m yum-a name=httpd state=latest
ansi ble web servers-m yum-a name=httpd state=absent !删除包
剧本
-名称:安装最新版本的Apache
yum:
名称:httpd
状态:最新
7 .服务
远程服务器上的控制服务
ansi ble web servers-m service-a name=nginx state=restart
剧本
- name: restart rmote nginx
service:name=nginx state=restart
8 .设置
收集远程服务器信息
可行的全m设置
在行动手册中,默认情况下会执行该任务,不需要列出。