ansible_模块和剧本ansible_bookplay

ansible_second_day

软件相关模块

yum

  • rpm 和 yum 的区别

    rpm:redhat package manager yum可以解决依赖关系

  • yum 源配置

    ansible web -m copy -a 'src=/etc/yum.repos.d/epel.repo dest=/etc/yum.repos.d/epel'
    [epel]
    name=Extra Packages for Enterprise Linux 7 -
    $basearch # 名字
    baseurl=http://mirrors.aliyun.com/epel/7/$basearch
    # rpm源的地址,可以写http,https,ftp,Samba,file;
    failocermethod=priority
    enabled=1 # 是否开启,1代表开启, 0代表关闭
    gpgcheck=0 # 是否校验签名,1,代表校验码,0表示不校验
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
  • yum 安装包组

    yum grouplist # 查看包组信息
    yum groupinstall # 安装包组
    
    disablerepo # 禁用源
    enablerepo # 启动源
    name # 包名
    state install (`present' or `installed',`latest'),
    or remove(`absent` or 'removed')

    实战代码:

    ansible web -m yum -a 'name=wget' # 安装wget
    
    ansible web -m yum -a 'name=python2-zip' 
    # a安装python2 -zip 
    pip 有多个版本,不能用yum直接下 应该像这样
    下载以后就有pip可以使用了
    
    
    ansible web -m yum -a 'name=wget state=abesent'
    # 卸载安装的软件包
    
    ansible web -m yum -a 'name="@Development Tools"'
    # 安装包组pip

pip

pip install 安装包

pip freeze > a.txt 将python的环境打包到文件中

pip install -r a.txt 安装文件中的包

pip list 查看所有已经安装成功的包
ansible web -m pip -a 'name=flask' # 安装flask模块

service

ps -ef |grep nginx # 查看进程
ss -tunpl # 查看端口信息
systemctl start nginx  # centos7
service nginx start # centos6
systemctl enabled nginx # centos7 开机启动
chkconfig nginx on # centos6 开机启动
ansible web -m service -a 'namme=nginx state=started'
# 启动nginx

ansible web -m service -a 'name=nginx state=stopped'
# 关闭nginx

corn

计划任务

*  *   *   *  *    job 
分 时  日  月  周   mission 任务
0 */2 *  * * misssion 每隔俩个小时
0 12,13 * * * mission 12点和13点
0 12-17 * * * mission 12点到17点
0 12-17/2 * * 1,3,6,0 周1,周3,周6,周7 12点到17点每隔俩小时 执行mission
crontab -e # 编辑计划任务
crontab -l # 查看计划任务
crontab -r # 删除计划任务

参数

day  天
disabled 禁言 落实到代码上就是在任务前面加# 注释掉
hour 小时 
job 任务
minute 分钟
mouth 月
name 任务名称
weekday 周
ansible db - m cron -a 'minute=39 job="touch /tmp/zhu.txt" name=fouchfile' # 新建一个计划任务

ansible db - m cron -a 'name=touchfile state=abesnt'
# 删除一个计划任务

ansible db -m cron -a 'minute=26 job="mkdir zzz" 
name = touchfile disabled=yes'
# 禁用计划任务,以#表示禁用

user

用户 :
    管理员 root 0
    普通用户 
        系统用户 不能登录 1-999 centos7 1-499 centos6
        登录用户 可以登录 1000-65535 centos7
                        500-65535 centos6

用户组:
    系统管理员组 root 0
    系统用户组 1-999 centos7 1-499 centos6
    登录用户组 1000-65535 centos7 500-65535 centos6
    
-d  指定用户的家目录
-g  指定用户组
-G  执行用户的附加组
-s  指定登陆后使用的shell
-r  穿件一个系统组

useradd -r max 创建系统用户,从999倒叙计数

useradd -s /sbin/nologin max 
# 创建的是普通用户,计数从 1000开始升序

useradd -d /opt/max1 max2 
# 创建用户时并指定用户的家目录

useradd -u 8888 max 
# 创建用户并指定用户的uid

userdel max 
# 删除用户max 只在系统中删除了用户 用户家目录还在

userdel -r max 
# 删除用户并且删除用户家目录


groupadd earl 
# 创建用户组

groupdel earl
# 删除用户组

group # 组
groups # 附加组
home # 家目录
name # 用户名
password # 密码
remove  # 删除
shell # 登录后使用的shell
system # 创建一个系统用户
uid # 用来指定用户的id
state # 状态


ansible db -m user -a'name=max uid=3333 home=/opt/max groups=root shell=/sbin/nologin'
# 创建一个用户,指定用户的id,用户的家目录,用户的附加组,用户的shell

ansible db -m user -a 'name=max state=absent'
# 删除用户但是留下用户的家目录

ansible db -m user -a 'name=maex state=absent remove=yes'
# 删除用户同时并且删除用户的家目录

group

gid # 组id
name # 组名
system # 系统组
state # 状态

ansible db -m group -a 'name=max system=yes'
# 创建系统组

ansible db -m group -a 'name=max state=absent'
# 删除组
web
ansible web -m group -a 'name=max8'
# 创建一个用户组 max8

ansible web -m user -a 'name=eral10'
# 创建一个用户 eral8

ansible web -m copy -a 'src=/etc/ftp dest=/tmp/f'
# 把/etc/ftp 文件复制到远程主机上 /tmp/f 下

ansible web -m yum -a 'name=nginx'
# 安装nginx

ansible web -m service -a 'name=nginx enabled=yes'
# 设置nginx 开机启动

ansible剧本

yaml

是一个编程语言
xml 是用来写配置文件的一个语言
ini
yaml
字典 : key:value
列表 : [] -
后缀名 : yaml, yml

ansible-playbook 命令格式

执行顺序,从上往下

特性: 幂等性,执行多少次,结果都一样

ansible-playbook [options] playbook.yml [playbook2...]

-C, --check 
# 检查,演示一遍,但不是真的运行,白干活

-f FORKS, --forks=FORKS 
# 用来做并发

--list-hosts 
# 列出主机列表

--syntax-check
# 语法检测

简单使用

- hosts: web
  tasks:
  - name: creategroup
    group: name=max9
  - name: createuser
    user: name=eral9
    

传参

-hosts: web
 taseks:
 -name: create{{ user}}
  user: name={{user}}

first

ansible-play -e 'user=max888' p1.yml

second

[db]
192.168.111.129 user=max777
195.168.107.133 user=max888

third

[db:vars]
# 表示组的参数
user=max777

fourth

- host: db
 vars:
 - user: max666
 tasks:
 - name: create{{ user }}
   user: name= {{ user }}

fifth

- hosts: db
  tasks:
  - name: sum
    shell: echo 7+8|bc
    register: user
  - name: createuser
    user: name={{ user.sudout }}

传递参数的优先级

-e >>> playbook vars > hosts文件

原文地址:https://www.cnblogs.com/zzy7372/p/10408159.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


----name:setpublickeyonremotehosts&setreomtehostssudoersfilehosts:all#此脚本要求所有的主机root用户密码相同become:noremote_user:rootvars:-remoteuser:user1:rhcetasks:-name:setsecondarygroupforrhce
环境准备#cat/etcedhat-releaseCentOSLinuxrelease7.9.2009(Core)#pythonPython3.7.11(default,Jul312022,16:12:35)[GCC4.8.520150623(RedHat4.8.5-44)]onlinuxType"help","copyright","credits"or"li
准备好环境,在安装之前请先了解openshift提供的ansible有大量的安装选项文档地址:https://docs.okd.io/latest/install/configuring_inventory_file.html1、配置/etc/ansible/hosts 
Ansible:运维工作:系统安装(物理机、虚拟机)-->程序包安装、配置、服务启动-->批量操作-->程序发布-->监控OSProvisioning:物理机:PXE、Cobbler虚拟机:ImageTemplatesConfigration:puppet(ruby)saltstack(python)chefcfengineCommandand
ansible与salt对比相同都是为了同时在多台机器上执行相同的命令都是python开发不同agent(saltstack需要安装、ansible不需要)配置(salt配置麻烦,ansible基本不用配置)学习路线(salt比较陡峭,ansible比较平缓)第三方工具(salt比较少)开源社区的对接(salt比较少)现有用户(salt还是an
[root@node1playbook]#catnginx.yml-hosts:test\\主机组,要和nginx.yml在同一个目录下remote_user:root\\远端执行任务的用户tasks:\\任务-name:installhttpd\\任务描述command:yum-yinstallhttpd\\调用ansible的command模块安装httpd-na
一直不知道这个模块到底在哪,并且也挺想搞清楚官方那些模块到底在哪个目录下。1.使用grep-rl"copy.py"/usr/lib/python2.7/site-packages/ansible(这个目录是专门放ansible源码目录的)然后找到是/usr/lib/python2.7/site-packages/ansible/modules/files/copy.py这个文件,这里需要
ansile作为去除安装agent的自动化工具,通过ssh协议的简单功能强大的自动化工作。在ansile使用的过程中,有三种用途1、ansible自行一次性任务,即执行命令如:ansible10.59.87.11-mping*ansible"dev-hdp"-mcopy-a"src=oot/HfHadoopHiveUdf.jardest=/data1/opt/cloudera/par
ansible-playbook(1) Ansible组成部分InventoryModulesAdHocCommandsplaybooksplaybooks:Tasks:任务,即调用的模块完成的某操作variables:变量Templates:模版Roles:角色 基本结构:-host:webserverremote_user:tasks:
报错:[root@jenkins~]#ansiblego_activity-mcron-a"name='log_clear'minute=0hour=2job=find/home/golanger/log/-typef-name'log$(date+\%d-d-1day)'-delete"ERROR!thistask'cron'hasextraparams,wh
一、测试环境说明1、系统:rhel6.92、ip地址:20.20.20.24/2420.20.20.41/2420.20.20.42/243、以下操作使用root身份进行,也可以使用具有sudo权限的用户进行相关操作二、环境准备1、关闭iptables防火墙、selinux#/etc/init.d/iptablesstop#
ansible常用模块安装:依赖于epel源yuminstallansible-y配置文件:/etc/ansible/ansible.cfgInvertoory:/etc/ansible/hosts 如何查看模块帮助:ansible-doc-lansible-doc-sMODULE_NAME` ansible命令应用基础:语法:ansible<host-pattern>[options]-fforks
copycopy模块是将ansible管理主机上的文件拷贝上远程主机中,与fetch相反,如果目标路径不存在,则自动创建,如果src的目录带“/”则复制该目录下的所有东西,如果src的目录不带“/”则连同该目录一起复制到目标路径;常用模块src参数:用于指定需要copy的文件或目录
9.YAML9.1简介(1)YAML是一个可读性高的用来表达资料序列的格式。(2)YAML参考了其它多种语言。包括:XML、C语言、python、perl以及电子邮件格式的RFC2822等。ClarkEvans在2001年首次发表了这种语言。(3)YAML不是XML,在开发这种语言时,YAML的意思其实是:yetanothermarkuplanguage,9.2特性(1)YA
了解ansibleansible批量在远程主机上执行命令ansible主要是为了进行操作多个主机而进行的#!/bin/envpython文件中直接指向python文件#!/bin/base 指行脚本一.ansible第一步.下载epel源wget-O/etc/yum.repos.d/epel.repohttp://mirrors.aliyun.comepo/epel-7.repo
背景:在私有云环境下,遇到要开通某个项目,则需要快速的响应创建虚拟机,并且做一些基础的配置。为了提高效率以及减少手工犯错的概率,一般会采取ansible批量部署,但是使用ansible的前提是预先配置好免密。在密码一致的场景中,可以使用expect优化做免密的过程解决方案:1.
简单例子1:vars定义变量-hosts:allremote_user:rootvars:-package:nginx-service:nginx tasks:-name:installnginxpackage yum:name={{package}}state=latest-name:installconfigurationfileforhttpd copy:src=/etcginxginx
 ansible自动化运维工具的介绍      ansible结构特性:            模块化,调用特定的模块,完成特定的任务;        基于Python语言实现,由Paramiko、PyYAML和Jinja2三个关键模块;        部署简单,agentless        主从模
---恢复内容开始---Templates:模版 cat/etc/ansible/hosts  cattemplatesginx.conf.j2 -hosts:testremote_user:rootvars:-package:httpd-service:httpdtasks:-name:installnginxpackage yum:name={{package}}state=la
1、配置资源清单inventory文件[root@test1~]#cat>/etc/ansible/hosts<<EOF[k8s]192.168.0.92ansible_ssh_port=22ansible_ssh_user=k8sansible_ssh_pass='123'ansible_become_pass='123456'EOF解释:ansible_ssh_pass='123'