ansible教程详细的,ansible常用模块有哪些

  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设置

  在行动手册中,默认情况下会执行该任务,不需要列出。

ansible教程详细的,ansible常用模块有哪些