SlideShare une entreprise Scribd logo
1  sur  3
Télécharger pour lire hors ligne
Puppet for Junos OS How-to Guide
Introduction
   Puppet is IT automation software developed by Puppet Labs to manage large-scale server deployments in the data
   center. Puppet for Junos OS enables IT organizations to automate network configuration and orchestration, allowing
   seamless integration with the rest of the compute (physical or virtual) infrastructure when it is automated by Puppet.
   This guide provides step-by-step instructions on how to get started with Puppet.

   Puppet for Junos consists of two different components.

   Puppet Server Module: This is the module that is installed
   in the Puppet Master and used to communicate to the puppet
   agent on the Juniper devices.

   Junos Puppet Agent: Runs on the Juniper device included
   in the “jpuppet” package.

   The Puppet for Junos solution requires the installation of
   both these modules. Puppet for Junos is supported on the
   12.3R2 release.

Installing the Puppet Server Modules
   The Puppet server modules are installed the same as any
   other Puppet module today. Running the following
   commands will automatically install all the required
   components.

   gem i nst al l net conf
   puppet m  odul e i nst al l j uni per / net dev - st dl i b- j unos


Installation and Configuration of the jpuppet Agent on Junos
   Download the jpuppet package from Puppet Labs and store it in a location on your network.
   ht t ps: / / downl oads. puppet l abs . com j unos/
                                              /

   Installation

   • Allow Junos accepts commercial package:

      set system extensions providers juniper license-type juniper deployment-scope
      commercial
      commit and-quit

   • Install the package on top of Junos:

      request system software add path-to-jpuppet-package no-validate




                                                                                                   © Juniper Networks, Inc.   | 1
Puppet for Junos How-to Guide




• Configure the account username, login class, authentication method, and shell:

   set system login user puppet class <class>
   set system login user puppet authentication <credentials>
   set system login user puppet shell csh
   commit

Configuration

After installing the jpuppet package on a Junos device, configure the agent to talk to the Puppet master.

Go under shell as Puppet…

   > start shell
   %

• Setup ENV variable

   % setenv PATH       ${PATH}:/opt/sdk/juniper/bin

• Create directory structure:

   % mkdir -p $HOME/.puppet/var/run
   % mkdir -p $HOME/.puppet/var/log

• Setup puppet.conf under $HOME/.puppet directory.

   #puppet.conf
   [main]
       libdir = $vardir/lib
       logdir = $vardir/log/puppet
       rundir = $vardir/run/puppet
       ssldir = $vardir/ssl
       factpath = $libdir/facter
     moduledir = $libdir

        pluginsync = true

   [agent]
       server           =   tme-puppetm-01.dcbg.juniper.net
       classfile        =   $vardir/classes.txt
       localconfig      =   $vardir/localconfig
       daemonize        =   false

Detailed information on how to install the jpuppet package is available at
http://www.juniper.net/techpubs/en_US/junos-puppet1.0/information-products/pathway-pages/junos-puppet.html.

Start Puppet Run

A Puppet run can now be started using the following command.

   % puppet agent -t --no-daemonize




                                                                                                © Juniper Networks, Inc.   | 2
Puppet for Junos How-to Guide




More Information
     • Puppet for Junos OS Administrative Guide: http://www.juniper.net/techpubs/en_US/junos-puppet1.0/information-
       products/pathway-pages/junos-puppet.html

     • Puppet Labs Juniper Networks Solutions: https://puppetlabs.com/solutions/juniper-networks/

     • Download:
             -   Junos jpuppet package: https://downloads.puppetlabs.com/junos/1.0R1.1/

             -   Junos Puppet Netdev modules:
                 http://forge.puppetlabs.com/juniper/netdev_stdlib_junos
                 http://forge.puppetlabs.com/netdevops/netdev_stdlib




Corporate and Sales Headquarters                              APAC Headquarters                                          EMEA Headquarters
Juniper Networks, Inc.                                        Juniper Networks (Hong Kong)                               Juniper Networks Ireland
1194 North Mathilda Avenue                                    26/F, Cityplaza One                                        Airside Business Park
Sunnyvale, CA 94089 USA                                       1111 King’s Road                                           Swords, County Dublin, Ireland
Phone: 888.JUNIPER (888.586.4737)                             Taikoo Shing, Hong Kong                                    Phone: 35.31.8903.600
or 408.745.2000                                               Phone: 852.2332.3636                                       EMEA Sales: 00800.4586.4737
Fax: 408.745.2100                                             Fax: 852.2574.7803                                         Fax: 35.31.8903.601

Copyright 2013 Juniper Networks, Inc. All rights reserved. Juniper Networks, the Juniper Networks logo, Junos, NetScreen, and ScreenOS are registered trademarks of
Juniper Networks, Inc. in the United States and other countries. All other trademarks, service marks, registered marks, or registered service marks are the property of their
respective owners. Juniper Networks assumes no responsibility for any inaccuracies in this document. Juniper Networks reserves the right to change, modify, transfer, or
otherwise revise this publication without notice.

April 2013




                                                                                                                                                  Juniper Networks, Inc.   | 3

Contenu connexe

Similaire à Puppet for Junos OS How-to Guide

Configuring junos basics
Configuring junos basicsConfiguring junos basics
Configuring junos basicsHijrawan Rezha
 
Frictionless IT Automation
Frictionless IT AutomationFrictionless IT Automation
Frictionless IT AutomationPuppet
 
State of Puppet London
State of Puppet LondonState of Puppet London
State of Puppet LondonPuppet
 
State of Puppet - London
State of Puppet - LondonState of Puppet - London
State of Puppet - LondonPuppet
 
Configuring Zero Touch Provisioning in Branch Networks
Configuring Zero Touch Provisioning in Branch NetworksConfiguring Zero Touch Provisioning in Branch Networks
Configuring Zero Touch Provisioning in Branch NetworksJuniper Networks
 
PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetWalter Heck
 
PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetOlinData
 
Cumulus Networks & Puppet Labs webinar
Cumulus Networks & Puppet Labs webinarCumulus Networks & Puppet Labs webinar
Cumulus Networks & Puppet Labs webinarCumulus Networks
 
Tame your Infrastructure with Puppet
Tame your Infrastructure with PuppetTame your Infrastructure with Puppet
Tame your Infrastructure with Puppetdelimiter
 
Scalable Systems Management with Puppet
Scalable Systems Management with PuppetScalable Systems Management with Puppet
Scalable Systems Management with PuppetPuppet
 
Scalable systems management with puppet
Scalable systems management with puppetScalable systems management with puppet
Scalable systems management with puppetPuppet
 
JDI Innovation Day
JDI Innovation DayJDI Innovation Day
JDI Innovation DayAMIT BORUDE
 
Integrating and Optimizing Suricata with FastStack™ Sniffer10G™
Integrating and Optimizing Suricata with FastStack™ Sniffer10G™Integrating and Optimizing Suricata with FastStack™ Sniffer10G™
Integrating and Optimizing Suricata with FastStack™ Sniffer10G™Emulex Corporation
 
Cellular technology with Embedded Linux - COSCUP 2016
Cellular technology with Embedded Linux - COSCUP 2016Cellular technology with Embedded Linux - COSCUP 2016
Cellular technology with Embedded Linux - COSCUP 2016SZ Lin
 
Puppet for Developers
Puppet for DevelopersPuppet for Developers
Puppet for Developerssagarhere4u
 
Puppet Camp Tokyo 2014: Puppet Is Most of Your Documentation
Puppet Camp Tokyo 2014: Puppet Is Most of Your DocumentationPuppet Camp Tokyo 2014: Puppet Is Most of Your Documentation
Puppet Camp Tokyo 2014: Puppet Is Most of Your DocumentationPuppet
 
[GAB2016] IoT and Azure - Aymeric Weinbach
[GAB2016] IoT and Azure - Aymeric Weinbach[GAB2016] IoT and Azure - Aymeric Weinbach
[GAB2016] IoT and Azure - Aymeric WeinbachCellenza
 
Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris
Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 ParisAymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris
Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 ParisAZUG FR
 

Similaire à Puppet for Junos OS How-to Guide (20)

Configuring junos basics
Configuring junos basicsConfiguring junos basics
Configuring junos basics
 
7100105 en
7100105 en7100105 en
7100105 en
 
Frictionless IT Automation
Frictionless IT AutomationFrictionless IT Automation
Frictionless IT Automation
 
State of Puppet London
State of Puppet LondonState of Puppet London
State of Puppet London
 
State of Puppet - London
State of Puppet - LondonState of Puppet - London
State of Puppet - London
 
Configuring Zero Touch Provisioning in Branch Networks
Configuring Zero Touch Provisioning in Branch NetworksConfiguring Zero Touch Provisioning in Branch Networks
Configuring Zero Touch Provisioning in Branch Networks
 
PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of Puppet
 
PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of Puppet
 
Cumulus Networks & Puppet Labs webinar
Cumulus Networks & Puppet Labs webinarCumulus Networks & Puppet Labs webinar
Cumulus Networks & Puppet Labs webinar
 
Tame your Infrastructure with Puppet
Tame your Infrastructure with PuppetTame your Infrastructure with Puppet
Tame your Infrastructure with Puppet
 
Scalable Systems Management with Puppet
Scalable Systems Management with PuppetScalable Systems Management with Puppet
Scalable Systems Management with Puppet
 
Scalable systems management with puppet
Scalable systems management with puppetScalable systems management with puppet
Scalable systems management with puppet
 
JDI Innovation Day
JDI Innovation DayJDI Innovation Day
JDI Innovation Day
 
Universal Userland
Universal UserlandUniversal Userland
Universal Userland
 
Integrating and Optimizing Suricata with FastStack™ Sniffer10G™
Integrating and Optimizing Suricata with FastStack™ Sniffer10G™Integrating and Optimizing Suricata with FastStack™ Sniffer10G™
Integrating and Optimizing Suricata with FastStack™ Sniffer10G™
 
Cellular technology with Embedded Linux - COSCUP 2016
Cellular technology with Embedded Linux - COSCUP 2016Cellular technology with Embedded Linux - COSCUP 2016
Cellular technology with Embedded Linux - COSCUP 2016
 
Puppet for Developers
Puppet for DevelopersPuppet for Developers
Puppet for Developers
 
Puppet Camp Tokyo 2014: Puppet Is Most of Your Documentation
Puppet Camp Tokyo 2014: Puppet Is Most of Your DocumentationPuppet Camp Tokyo 2014: Puppet Is Most of Your Documentation
Puppet Camp Tokyo 2014: Puppet Is Most of Your Documentation
 
[GAB2016] IoT and Azure - Aymeric Weinbach
[GAB2016] IoT and Azure - Aymeric Weinbach[GAB2016] IoT and Azure - Aymeric Weinbach
[GAB2016] IoT and Azure - Aymeric Weinbach
 
Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris
Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 ParisAymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris
Aymeric Weinbach - IoT et Azure - Global Azure Bootcamp 2016 Paris
 

Plus de Juniper Networks

Why Juniper, Driven by Mist AI, Leads the Market
 Why Juniper, Driven by Mist AI, Leads the Market Why Juniper, Driven by Mist AI, Leads the Market
Why Juniper, Driven by Mist AI, Leads the MarketJuniper Networks
 
Experience the AI-Driven Enterprise
Experience the AI-Driven EnterpriseExperience the AI-Driven Enterprise
Experience the AI-Driven EnterpriseJuniper Networks
 
How AI Simplifies Troubleshooting Your WAN
How AI Simplifies Troubleshooting Your WANHow AI Simplifies Troubleshooting Your WAN
How AI Simplifies Troubleshooting Your WANJuniper Networks
 
Real AI. Real Results. Mist AI Customer Testimonials.
Real AI. Real Results. Mist AI Customer Testimonials.Real AI. Real Results. Mist AI Customer Testimonials.
Real AI. Real Results. Mist AI Customer Testimonials.Juniper Networks
 
Are you able to deliver reliable experiences for connected devices
Are you able to deliver reliable experiences for connected devicesAre you able to deliver reliable experiences for connected devices
Are you able to deliver reliable experiences for connected devicesJuniper Networks
 
Stop Doing These 5 Things with Your SD-WAN
Stop Doing These 5 Things with Your SD-WANStop Doing These 5 Things with Your SD-WAN
Stop Doing These 5 Things with Your SD-WANJuniper Networks
 
Securing IoT at Scale Requires a Holistic Approach
Securing IoT at Scale Requires a Holistic ApproachSecuring IoT at Scale Requires a Holistic Approach
Securing IoT at Scale Requires a Holistic ApproachJuniper Networks
 
Smart Solutions for Smart Communities: What's Next & Who's Responsible?
Smart Solutions for Smart Communities: What's Next & Who's Responsible?Smart Solutions for Smart Communities: What's Next & Who's Responsible?
Smart Solutions for Smart Communities: What's Next & Who's Responsible?Juniper Networks
 
Are You Ready for Digital Cohesion?
Are You Ready for Digital Cohesion?Are You Ready for Digital Cohesion?
Are You Ready for Digital Cohesion?Juniper Networks
 
Juniper vSRX - Fast Performance, Low TCO
Juniper vSRX - Fast Performance, Low TCOJuniper vSRX - Fast Performance, Low TCO
Juniper vSRX - Fast Performance, Low TCOJuniper Networks
 
SDN and NFV: Transforming the Service Provider Organization
SDN and NFV: Transforming the Service Provider OrganizationSDN and NFV: Transforming the Service Provider Organization
SDN and NFV: Transforming the Service Provider OrganizationJuniper Networks
 
Navigating the Uncertain World Facing Service Providers - Juniper's Perspective
Navigating the Uncertain World Facing Service Providers - Juniper's PerspectiveNavigating the Uncertain World Facing Service Providers - Juniper's Perspective
Navigating the Uncertain World Facing Service Providers - Juniper's PerspectiveJuniper Networks
 
vSRX Buyer’s Guide infographic - Juniper Networks
vSRX Buyer’s Guide infographic - Juniper Networks vSRX Buyer’s Guide infographic - Juniper Networks
vSRX Buyer’s Guide infographic - Juniper Networks Juniper Networks
 
NFV Solutions for the Telco Cloud
NFV Solutions for the Telco Cloud NFV Solutions for the Telco Cloud
NFV Solutions for the Telco Cloud Juniper Networks
 
Juniper SRX5800 Infographic
Juniper SRX5800 InfographicJuniper SRX5800 Infographic
Juniper SRX5800 InfographicJuniper Networks
 
Infographic: 90% MetaFabric Customer Satisfaction
Infographic: 90% MetaFabric Customer SatisfactionInfographic: 90% MetaFabric Customer Satisfaction
Infographic: 90% MetaFabric Customer SatisfactionJuniper Networks
 
Infographic: Whack Hackers Lightning Fast
Infographic: Whack Hackers Lightning FastInfographic: Whack Hackers Lightning Fast
Infographic: Whack Hackers Lightning FastJuniper Networks
 
High performance data center computing using manageable distributed computing
High performance data center computing using manageable distributed computingHigh performance data center computing using manageable distributed computing
High performance data center computing using manageable distributed computingJuniper Networks
 

Plus de Juniper Networks (20)

Why Juniper, Driven by Mist AI, Leads the Market
 Why Juniper, Driven by Mist AI, Leads the Market Why Juniper, Driven by Mist AI, Leads the Market
Why Juniper, Driven by Mist AI, Leads the Market
 
Experience the AI-Driven Enterprise
Experience the AI-Driven EnterpriseExperience the AI-Driven Enterprise
Experience the AI-Driven Enterprise
 
How AI Simplifies Troubleshooting Your WAN
How AI Simplifies Troubleshooting Your WANHow AI Simplifies Troubleshooting Your WAN
How AI Simplifies Troubleshooting Your WAN
 
Real AI. Real Results. Mist AI Customer Testimonials.
Real AI. Real Results. Mist AI Customer Testimonials.Real AI. Real Results. Mist AI Customer Testimonials.
Real AI. Real Results. Mist AI Customer Testimonials.
 
SD-WAN, Meet MARVIS.
SD-WAN, Meet MARVIS.SD-WAN, Meet MARVIS.
SD-WAN, Meet MARVIS.
 
Are you able to deliver reliable experiences for connected devices
Are you able to deliver reliable experiences for connected devicesAre you able to deliver reliable experiences for connected devices
Are you able to deliver reliable experiences for connected devices
 
Stop Doing These 5 Things with Your SD-WAN
Stop Doing These 5 Things with Your SD-WANStop Doing These 5 Things with Your SD-WAN
Stop Doing These 5 Things with Your SD-WAN
 
Securing IoT at Scale Requires a Holistic Approach
Securing IoT at Scale Requires a Holistic ApproachSecuring IoT at Scale Requires a Holistic Approach
Securing IoT at Scale Requires a Holistic Approach
 
Smart Solutions for Smart Communities: What's Next & Who's Responsible?
Smart Solutions for Smart Communities: What's Next & Who's Responsible?Smart Solutions for Smart Communities: What's Next & Who's Responsible?
Smart Solutions for Smart Communities: What's Next & Who's Responsible?
 
What's Your IT Alter Ego?
What's Your IT Alter Ego?What's Your IT Alter Ego?
What's Your IT Alter Ego?
 
Are You Ready for Digital Cohesion?
Are You Ready for Digital Cohesion?Are You Ready for Digital Cohesion?
Are You Ready for Digital Cohesion?
 
Juniper vSRX - Fast Performance, Low TCO
Juniper vSRX - Fast Performance, Low TCOJuniper vSRX - Fast Performance, Low TCO
Juniper vSRX - Fast Performance, Low TCO
 
SDN and NFV: Transforming the Service Provider Organization
SDN and NFV: Transforming the Service Provider OrganizationSDN and NFV: Transforming the Service Provider Organization
SDN and NFV: Transforming the Service Provider Organization
 
Navigating the Uncertain World Facing Service Providers - Juniper's Perspective
Navigating the Uncertain World Facing Service Providers - Juniper's PerspectiveNavigating the Uncertain World Facing Service Providers - Juniper's Perspective
Navigating the Uncertain World Facing Service Providers - Juniper's Perspective
 
vSRX Buyer’s Guide infographic - Juniper Networks
vSRX Buyer’s Guide infographic - Juniper Networks vSRX Buyer’s Guide infographic - Juniper Networks
vSRX Buyer’s Guide infographic - Juniper Networks
 
NFV Solutions for the Telco Cloud
NFV Solutions for the Telco Cloud NFV Solutions for the Telco Cloud
NFV Solutions for the Telco Cloud
 
Juniper SRX5800 Infographic
Juniper SRX5800 InfographicJuniper SRX5800 Infographic
Juniper SRX5800 Infographic
 
Infographic: 90% MetaFabric Customer Satisfaction
Infographic: 90% MetaFabric Customer SatisfactionInfographic: 90% MetaFabric Customer Satisfaction
Infographic: 90% MetaFabric Customer Satisfaction
 
Infographic: Whack Hackers Lightning Fast
Infographic: Whack Hackers Lightning FastInfographic: Whack Hackers Lightning Fast
Infographic: Whack Hackers Lightning Fast
 
High performance data center computing using manageable distributed computing
High performance data center computing using manageable distributed computingHigh performance data center computing using manageable distributed computing
High performance data center computing using manageable distributed computing
 

Puppet for Junos OS How-to Guide

  • 1. Puppet for Junos OS How-to Guide Introduction Puppet is IT automation software developed by Puppet Labs to manage large-scale server deployments in the data center. Puppet for Junos OS enables IT organizations to automate network configuration and orchestration, allowing seamless integration with the rest of the compute (physical or virtual) infrastructure when it is automated by Puppet. This guide provides step-by-step instructions on how to get started with Puppet. Puppet for Junos consists of two different components. Puppet Server Module: This is the module that is installed in the Puppet Master and used to communicate to the puppet agent on the Juniper devices. Junos Puppet Agent: Runs on the Juniper device included in the “jpuppet” package. The Puppet for Junos solution requires the installation of both these modules. Puppet for Junos is supported on the 12.3R2 release. Installing the Puppet Server Modules The Puppet server modules are installed the same as any other Puppet module today. Running the following commands will automatically install all the required components. gem i nst al l net conf puppet m odul e i nst al l j uni per / net dev - st dl i b- j unos Installation and Configuration of the jpuppet Agent on Junos Download the jpuppet package from Puppet Labs and store it in a location on your network. ht t ps: / / downl oads. puppet l abs . com j unos/ / Installation • Allow Junos accepts commercial package: set system extensions providers juniper license-type juniper deployment-scope commercial commit and-quit • Install the package on top of Junos: request system software add path-to-jpuppet-package no-validate © Juniper Networks, Inc. | 1
  • 2. Puppet for Junos How-to Guide • Configure the account username, login class, authentication method, and shell: set system login user puppet class <class> set system login user puppet authentication <credentials> set system login user puppet shell csh commit Configuration After installing the jpuppet package on a Junos device, configure the agent to talk to the Puppet master. Go under shell as Puppet… > start shell % • Setup ENV variable % setenv PATH ${PATH}:/opt/sdk/juniper/bin • Create directory structure: % mkdir -p $HOME/.puppet/var/run % mkdir -p $HOME/.puppet/var/log • Setup puppet.conf under $HOME/.puppet directory. #puppet.conf [main] libdir = $vardir/lib logdir = $vardir/log/puppet rundir = $vardir/run/puppet ssldir = $vardir/ssl factpath = $libdir/facter moduledir = $libdir pluginsync = true [agent] server = tme-puppetm-01.dcbg.juniper.net classfile = $vardir/classes.txt localconfig = $vardir/localconfig daemonize = false Detailed information on how to install the jpuppet package is available at http://www.juniper.net/techpubs/en_US/junos-puppet1.0/information-products/pathway-pages/junos-puppet.html. Start Puppet Run A Puppet run can now be started using the following command. % puppet agent -t --no-daemonize © Juniper Networks, Inc. | 2
  • 3. Puppet for Junos How-to Guide More Information • Puppet for Junos OS Administrative Guide: http://www.juniper.net/techpubs/en_US/junos-puppet1.0/information- products/pathway-pages/junos-puppet.html • Puppet Labs Juniper Networks Solutions: https://puppetlabs.com/solutions/juniper-networks/ • Download: - Junos jpuppet package: https://downloads.puppetlabs.com/junos/1.0R1.1/ - Junos Puppet Netdev modules: http://forge.puppetlabs.com/juniper/netdev_stdlib_junos http://forge.puppetlabs.com/netdevops/netdev_stdlib Corporate and Sales Headquarters APAC Headquarters EMEA Headquarters Juniper Networks, Inc. Juniper Networks (Hong Kong) Juniper Networks Ireland 1194 North Mathilda Avenue 26/F, Cityplaza One Airside Business Park Sunnyvale, CA 94089 USA 1111 King’s Road Swords, County Dublin, Ireland Phone: 888.JUNIPER (888.586.4737) Taikoo Shing, Hong Kong Phone: 35.31.8903.600 or 408.745.2000 Phone: 852.2332.3636 EMEA Sales: 00800.4586.4737 Fax: 408.745.2100 Fax: 852.2574.7803 Fax: 35.31.8903.601 Copyright 2013 Juniper Networks, Inc. All rights reserved. Juniper Networks, the Juniper Networks logo, Junos, NetScreen, and ScreenOS are registered trademarks of Juniper Networks, Inc. in the United States and other countries. All other trademarks, service marks, registered marks, or registered service marks are the property of their respective owners. Juniper Networks assumes no responsibility for any inaccuracies in this document. Juniper Networks reserves the right to change, modify, transfer, or otherwise revise this publication without notice. April 2013 Juniper Networks, Inc. | 3