自动化运维工具Ansible使用教程(3)

-R SU_USER, --su-user=SU_USER                                       #su 的时候切换到那个用户

run operations with su as this user (default=root)

(deprecated, use become)

2.4 配置相关文件

修改主机文件inventory:,此文件定义执行命令的主机列表


设置ansible.cfg参数

inventory =/etc/ansible/hosts             #定义资源清单inventory文件的位置,一般保持默认

library =/usr/share/my_modules/           #library指向ansible模块的目录,一般保持默认

forks =10                                 #设置多少个进程同时工作

sudo_user=root                            #设置默认执行命令的用户,也可在playbook中重新设置此参数

remote_port=22                            #制定连接被管理的管理端口,默认为22

timeout =10                               #设置SSH连接的超时时间间隔,单位为秒

2.5 测试

ansible agent -m command -a "touch /tmp/aaa" -vvv

#-m  使用command模块  -a 使用command里面支持的命令参数 -vvv 查看详细过程

wKioL1ncbXmA9xmVAAB-f9ZOtgs514.png

三、模块介绍

ansible模块较多,对应可以查看相关文档,此处列出一下日常工作中常用的模块

【copy】模块

ansible agent -m copy -a "src=/root/test.sh dest=/tmp"

【file】

调用-s 参数,需要客户端能够无密码使用sudo命令;

ansible agent -m file -a "dest=/tmp/test.sh mode=755 owner=root group=root" -s

【script】

ansible agent -m script -a "/tmp/test.sh"

【shell】创建用户

ansible agent -m shell -a "/tmp/test.sh" 

【group】创建组

ansible agent -m group -a "name=test1 state=present" -s

【user】

ansible agent -m user -a "name=xuel home=/home/xuel state=present" -s

【yum】

可以提供的status:absent,present,installed,removed,latest

ansible agent -m yum -a "name=httpd state=latest" -s

【server】

可以提供的status:running,started,stopped,restarted,reloaded

【cron】

ansible agent -m cron -a 'name="my job" minute=*/1 hour=* day=* month=* weekday=* job="/usr/sbin/ntpdate time1.aliyun.com"'

【get_url】

ansible agent -m get_url -a "url=http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm dest=/tmp"

【synchronize】需要安装rsync

ansible agent -m synchronize -a "src=/root/test.file dest=/tmp"

模块默认使用的为推送push,如果想使用pull功能需添加mode=pull

ansible agent -m synchronize -a "mode=pull src=/tmp/test.file dest=/root/"

【ini_file】 

ansible agent -m ini_file -a "dest=/tmp/test.ini section=Mongo option=Host value=127.0.0.1"

该模块Python需要安装ConfigParser

四、ansible-playbook介绍

4.1 核心组件

hosts             #执行的远程主机列表

tasks             #任务集

varniables        #内置变量或自定义变量

templates         #可替换模版

handlers          #触发操作

4.2 命令

Usage: ansible-playbook playbook.yml

ansible-playbook test1.yml             #执行剧本

ansible-vault encrypt test1.yml         #加密剧本

ansible-vault decrypt test1.yml         #加密剧本

ansible-vault view test1.yml            #加密剧本 

4.3 YAML语法

1.“---”顶行首写

2.#代码注释

3.缩进统一,不可混用空格与tab

4.缩进级别椅子

5.区分大小写

6.k/v值可以同行写也可换行写,同行使用:分割,换行需要-分割

7.一个网址的功能代码需要最少的元素包括name:task

8.一个name只能包括一个task

4.4 安装并启动mysql playbook实例

--- 

- hosts: agent

  remote_user: root

  tasks:

  - name: install mysql-server

    yum: name=mysql-server state=present

  - name: start mysql-server

    service: name=mysqld state=started

  - name: check mysql service

    shell: ps -ef |grep mysqld

执行次playbook将mysql数据库安装到agent服务分组里:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/c849b5bd94d72a9d2190dfbc0266ac5c.html