Faits :
A.
Par jugement du 24 juillet 2020, le Tribunal de police de l'arrondissement de Lausanne a reconnu A._ coupable de séjour illégal et d'activité lucrative sans autorisation entre le 30 août 2017 et le 30 août 2019, l'a condamné à une peine privative de liberté de 120 jours, a renoncé à révoquer le sursis qui lui avait été octroyé le 30 janvier 2014 par le Tribunal de police de La Côte, a rejeté la requête en allocation d'une indemnité fondée sur l'art. 429 CPP formée par A._ et a mis les frais de justice, par 900 fr. à sa charge.
B.
Par jugement du 16 novembre 2020, la Cour d'appel pénale du Tribunal cantonal vaudois a rejeté l'appel formé par A._ contre le jugement du Tribunal de police.
La cour cantonale a retenu les faits suivants.
B.a. A._ est né en 1982 en Algérie, pays dont il est ressortissant. En 2003, il est entré illégalement en Suisse, où il réside depuis lors sans discontinuer. Il s'est marié en 2009 avec une personne au bénéfice d'un permis C et a alors obtenu un permis B, qu'il a toutefois perdu lors de son divorce, prononcé en 2014. Depuis lors, A._ réside illégalement en Suisse. Il a créé sous la forme d'une Sàrl, en 2012 ou en 2013 l'entreprise B._ dont il était le gérant et l'unique salarié, par le biais de laquelle il a travaillé comme peintre en bâtiment. Cette société a été déclarée en faillite ensuite de la mise en détention de A._ au printemps 2015. En 2018, il a créé la Sàrl C._ dont il était également le gérant. Il a suspendu l'activité de cette société à la suite de l'ouverture de l'enquête ayant débouché sur la présente procédure. En 2018, il s'est fiancé avec une ressortissante suisse. En 2020, le Service de la population (SPOP) a attesté réception de la demande d'autorisation de séjour en vue du mariage déposée par A._ et informé celui-ci que le traitement de sa demande pourrait prendre entre trois et quatre mois. Il n'a pas de revenu et subvient à ses besoins grâce à l'aide de sa compagne et de ses amis.
Il ressort d'une attestation de la police judiciaire de Lausanne datée du 28 février 2020 que A._ collabore spontanément avec la police judiciaire de Lausanne depuis plusieurs années.
B.b. Dans la présente procédure, il est reproché à A._ d'avoir séjourné en Suisse sans autorisation valable entre le 30 août 2017 et le 30 août 2019 et d'y avoir travaillé, durant la même période, comme peintre au sein de sa société B._ puis de sa société C._ sans bénéficier des autorisations nécessaires.
B.c. Le casier judiciaire suisse de A._ fait état de 9 condamnations entre 2005 et août 2017 pour diverses infractions à la loi fédérale sur le séjour et l'établissement des étrangers (ci-après: LEI; RS 142.20), vol, vol en bande (délit manqué), vol par métier, dommages à la propriété, violation de domicile, délit et contravention à la LStup, à des peines pécuniaires et à des peines privatives de liberté allant jusqu'à 22 mois.
C.
A._ forme un recours en matière pénale au Tribunal fédéral contre le jugement du 16 novembre 2020 et conclut, avec suite de frais et dépens, au prononcé d'une peine privative de liberté qui ne soit pas supérieure à 60 jours, assortie d'un sursis complet dont la durée est fixée à dire de justice. Subsidiairement, il conclut au renvoi de la cause à la juridiction cantonale pour nouvelle décision. Il sollicite en outre le bénéfice de l'assistance judiciaire.

Considérant en droit :
1.
Le recourant ne conteste pas sa condamnation pour séjour illégal et activité lucrative sans autorisation. Il reproche toutefois à la cour cantonale d'avoir établi les faits de manière arbitraire et d'avoir violé l'art. 47 CP en prononçant une peine trop sévère.
1.1. Conformément à l'art. 115 al. 1 LEI, le séjour illégal (let. b) et l'exercice d'une activité lucrative sans autorisation (let. c) sont punis d'une peine privative de liberté d'un an au plus ou d'une peine pécuniaire.
1.2. Le Tribunal fédéral n'est pas une autorité d'appel, auprès de laquelle les faits pourraient être rediscutés librement. Il est lié par les constatations de faits de la décision entreprise (art. 105 al. 1 LTF), à moins qu'elles n'aient été établies en violation du droit ou de manière manifestement inexacte au sens des art. 97 al. 1 et 105 al. 2 LTF, à savoir, pour l'essentiel, de façon arbitraire au sens de l'art. 9 Cst. Une décision n'est pas arbitraire du seul fait qu'elle apparaît discutable ou même critiquable; il faut qu'elle soit manifestement insoutenable et cela non seulement dans sa motivation mais aussi dans son résultat (<ref-ruling> consid. 1.1 p. 155 s.; <ref-ruling> consid. 1.1 p. 503; sur la notion d'arbitraire v. <ref-ruling> consid. 2.3.1 p. 244). Le Tribunal fédéral n'entre en matière sur les moyens fondés sur la violation de droits fondamentaux, dont l'interdiction de l'arbitraire, que s'ils ont été invoqués et motivés de manière précise (art. 106 al. 2 LTF; ATF <ref-ruling> consid. 1.1 p. 503). Les critiques de nature appellatoire sont irrecevables (<ref-ruling> consid. 1.1 p. 156).
1.3. Aux termes de l'art. 47 CP, le juge fixe la peine d'après la culpabilité de l'auteur. Il prend en considération les antécédents et la situation personnelle de ce dernier ainsi que l'effet de la peine sur son avenir (al. 1). La culpabilité est déterminée par la gravité de la lésion ou de la mise en danger du bien juridique concerné, par le caractère répréhensible de l'acte, par les motivations et les buts de l'auteur et par la mesure dans laquelle celui-ci aurait pu éviter la mise en danger ou la lésion, compte tenu de sa situation personnelle et des circonstances extérieures (al. 2). La culpabilité de l'auteur doit être évaluée en fonction de tous les éléments objectifs pertinents, qui ont trait à l'acte lui-même, à savoir notamment la gravité de la lésion, le caractère répréhensible de l'acte et son mode d'exécution. Du point de vue subjectif, sont pris en compte l'intensité de la volonté délictuelle ainsi que les motivations et les buts de l'auteur. A ces composantes de la culpabilité, il faut ajouter les facteurs liés à l'auteur lui-même, à savoir les antécédents, la réputation, la situation personnelle (état de santé, âge, obligations familiales, situation professionnelle, risque de récidive, etc.), la vulnérabilité face à la peine, de même que le comportement après l'acte et au cours de la procédure pénale (<ref-ruling> consid. 9.1; <ref-ruling> consid. 6.1.1 et les références citées).
Le juge dispose d'un large pouvoir d'appréciation dans la fixation de la peine. Le Tribunal fédéral n'intervient que lorsque l'autorité cantonale a fixé une peine en dehors du cadre légal, si elle s'est fondée sur des critères étrangers à l'art. 47 CP, si des éléments d'appréciation importants n'ont pas été pris en compte ou, enfin, si la peine prononcée est exagérément sévère ou clémente au point de constituer un abus du pouvoir d'appréciation (<ref-ruling> consid. 1.2). L'exercice de ce contrôle suppose que le juge exprime, dans sa décision, les éléments essentiels relatifs à l'acte ou à l'auteur dont il tient compte, de manière à ce que l'on puisse constater que tous les aspects pertinents ont été pris en considération et comment ils ont été appréciés, que ce soit dans un sens aggravant ou atténuant (art. 50 CP; <ref-ruling> consid. 1.2). Plus la peine est élevée, plus la motivation doit être complète (<ref-ruling> consid. 1.2).
Aux termes de l'art. 49 al. 1 CP, si, en raison d'un ou de plusieurs actes, l'auteur remplit les conditions de plusieurs peines de même genre, le juge le condamne à la peine de l'infraction la plus grave et l'augmente dans une juste proportion. Il ne peut toutefois excéder de plus de la moitié le maximum de la peine prévue pour cette infraction. Il est en outre lié par le maximum légal de chaque genre de peine.
1.4. La cour cantonale a retenu que la culpabilité du recourant était importante, notamment en raison de la durée des agissements (deux ans) et des structures mises en place, sous la forme de deux Sàrl successives créées pour déployer une activité professionnelle non autorisée. Le recourant avait au surplus déjà fait l'objet de neuf condamnations dont six avaient été prononcées, pour une voire les deux mêmes infractions à la législation sur les étrangers. Celles dont il était question dans la présente procédure avaient en outre été commises alors que le recourant avait exécuté, peu avant, soit entre mars 2015 et janvier 2017, un total de 22 mois de privation de liberté. Ainsi, d'après la cour cantonale, la première expérience carcérale du recourant n'avait manifestement produit aucun effet correcteur s'agissant de son respect de cette législation. Pour le surplus, les juges cantonaux ont considéré que, ni le fait que le séjour illégal en Suisse du recourant était connu d'une administration communale, ni son activité d'indicateur pour la police n'étaient des éléments déterminants dès lors qu'ils n'avaient pas empêché le recourant de violer la législation suisse. Quant à son projet de mariage avec une suissesse, il était relativement récent et n'était pas susceptible d'atténuer les comportements punissables antérieurs dont il avait fait preuve au début de ses démarches. Enfin, le fait qu'il n'avait, cette fois-ci, pas commis d'infraction contre le patrimoine ne constituait pas un élément à décharge, le fait de ne pas commettre une infraction relevant uniquement du comportement attendu de tout un chacun.
En définitive, la cour cantonale a retenu que, quand bien même le comportement du recourant s'était sensiblement amélioré ces dernières années, notamment en raison de l'aide apportée à la police, une peine privative de liberté s'imposait pour des motifs de prévention spéciale, au vu des antécédents du recourant et du fait qu'il ne saurait manifestement s'acquitter d'une peine pécuniaire. Elle a par ailleurs relevé que, compte tenu du long et récidivant séjour illicite, le recourant aurait dû être sanctionné par une peine privative de liberté de 5 mois qu'il convenait de majorer d'autant par l'effet du concours afin sanctionner l'activité lucrative sans autorisation mais que l'interdiction de la reformatio in pejus imposait toutefois de confirmer la peine privative de liberté de 4 mois prononcée.
1.5. En tant que le recourant reproche à la cour cantonale d'avoir omis de tenir compte de certains critères déterminants pour fixer sa culpabilité et d'avoir violé l'art. 47 CP, ses griefs relèvent davantage de l'appréciation des preuves que de la violation du droit fédéral.
C'est de manière essentiellement appellatoire, partant irrecevable, que le recourant prétend n'avoir pas mis en place un quelconque stratagème ni déployé une énergie considérable en créant deux Sàrl successives et en persistant à commettre un huitième séjour illégal, après avoir exécuté une peine privative de liberté pour les mêmes motifs. Sur la base de constatations dénuées d'arbitraire, la cour cantonale pouvait, sans violer le droit fédéral, prendre en compte une volonté délictuelle importante pour qualifier sa culpabilité. En outre, on voit mal en quoi la " volonté de rester en Suisse ", dont le recourant se prévaut, pourrait constituer un élément à décharge dans la commission des infractions en cause, dont la réalisation ne nécessite pas de dessein particulier.
Contrairement à ce qu'il prétend, la cour cantonale a tenu compte de l'attestation selon laquelle il avait collaboré avec la police judiciaire pour admettre une amélioration de son comportement après les faits. Il ne parvient pas à démontrer qu'elle aurait fait preuve d'arbitraire en ne mentionnant pas expressément que la collaboration avait notamment permis de faire évoluer d'importantes enquêtes, cette précision n'étant pas déterminante pour qualifier les facteurs tenant au comportement de l'auteur. En tant que le recourant livre sa propre interprétation de son activité d'indicateur de police, de son annonce auprès d'une administration communale, de l'absence d'infraction contre le patrimoine et de son projet de mariage, il procède de manière purement appellatoire et échoue à démontrer, en tout état, l'arbitraire dans l'appréciation de la cour cantonale sur ces aspects. En rappelant qu'il a toujours admis les faits et n'en a pas contesté la qualification, le recourant ne démontre pas que sa collaboration à la procédure devrait être appréciée dans un sens atténuant, au vu des infractions en cause.
Compte tenu des éléments essentiels liés à l'acte et à l'auteur retenus en l'espèce, la cour cantonale n'a pas outrepassé son large pouvoir d'appréciation et a fixé la peine en conformité avec le droit fédéral (art. 47 cum 49 CP).
2.
Le recourant reproche à la cour cantonale d'avoir violé l'art. 42 CP en ne lui accordant pas le sursis.
2.1. Aux termes de l'art. 42 al. 1 CP, dans sa teneur jusqu'au 31 décembre 2017, le juge suspend en règle générale l'exécution d'une peine pécuniaire, d'un travail d'intérêt général ou d'une peine privative de liberté de six mois au moins et de deux ans au plus lorsqu'une peine ferme ne paraît pas nécessaire pour détourner l'auteur d'autres crimes ou délits. Si, durant les cinq ans qui précèdent l'infraction, l'auteur a été condamné à une peine privative de liberté ferme ou avec sursis de six mois au moins ou à une peine pécuniaire de 180 jours-amende au moins, il ne peut y avoir de sursis à l'exécution de la peine qu'en cas de circonstances particulièrement favorables (al. 2). Cette disposition est applicable en l'espèce sans égard à la modification entrée en vigueur le 1er janvier 2018, laquelle n'est pas plus favorable à l'intéressé (cf. art. 2 al. 2 CP).
Dans l'hypothèse prévue à l'art. 42 al. 2 CP, la présomption d'un pronostic favorable, respectivement du défaut d'un pronostic défavorable au sens de l'art. 42 al. 1 CP, ne s'applique pas, la condamnation antérieure constituant un indice faisant craindre que l'auteur puisse commettre d'autres infractions. L'octroi du sursis n'entre donc en considération que si, malgré l'infraction commise, on peut raisonnablement supposer, à l'issue de l'appréciation de l'ensemble des facteurs déterminants, que le condamné s'amendera. Le juge doit examiner si la crainte de récidive fondée sur l'infraction commise peut être compensée par les circonstances particulièrement favorables, soit des circonstances qui empêchent que l'infraction antérieure ne détériore le pronostic. Tel sera notamment le cas si l'infraction à juger n'a aucun rapport avec l'infraction antérieure ou que les conditions de vie du condamné se sont modifiées de manière particulièrement positive (<ref-ruling> consid. 4.2.3 p. 7; cf. arrêts 6B_658/2017 du 30 janvier 2018 consid. 1.2; 6B_64/2017 du 24 novembre 2017 consid. 2.2 et 6B_352/2014 du 22 mai 2015 consid. 7.1 non publié aux <ref-ruling>).
2.2. La cour cantonale a relevé que le recourant avait déjà été condamné à non moins de 7 reprises pour des infractions à la LEI. Elle a ainsi considéré que, ni le fait qu'il avait désormais limité sa délinquance à ce domaine, ni même la prise de conscience dont il se prévalait en relation avec ses activités d'indicateur de police, ne constituaient des éléments permettant de renverser le pronostic défavorable qui s'imposait. On ne pouvait pas non plus déduire de ses démarches visant à stabiliser sa situation par le mariage un quelconque progrès, dès lors que celles-ci débutaient à peine et qu'elles n'étaient au demeurant pas accomplies depuis l'étranger, conformément à la loi. La juridiction précédente a par ailleurs relevé que le fait que la peine prononcée dans le cadre de la présente procédure était une peine ferme avait largement influencé la décision du tribunal de première instance de ne pas révoquer le sursis octroyé au recourant le 30 janvier 2014 par le Tribunal de police de La Côte.
2.3. Le recourant, qui ne conteste pas que l'art. 42 al. 2 CP soit applicable, critique cette appréciation. Selon lui, plusieurs éléments permettraient de penser qu'il ne commettra plus de nouvelles infractions à l'avenir et auraient dû être considérés comme des circonstances particulièrement favorables par la cour cantonale. Il se prévaut ainsi du fait qu'il n'a plus commis d'infractions contre le patrimoine, ni d'infractions à la LStup depuis 2016. Cet élément ne saurait toutefois constituer une circonstance particulièrement favorable; il ne change rien au fait que le recourant a commis, dans les cinq années précédant la commission des infractions reprochées dans la présente procédure, des infractions de même nature (cf. consid. 2.1 supra). Pour le surplus, le recourant est mal venu de faire valoir que son activité d'indicateur de police corroborerait le fait qu'il souhaite se conformer à l'ordre juridique suisse et " permet de penser " qu'il n'a pas l'intention de commettre de nouvelles infractions à l'avenir, tandis qu'il a commis ces infractions alors qu'il collaborait déjà avec la police. Quant à ses démarches visant à régulariser son séjour, par le mariage avec une ressortissante suisse, il ne saurait en déduire une circonstance particulièrement favorable au sens de l'art. 42 al. 2 CP. Cela étant, et au vu de la persistance du recourant à commettre des infractions de même nature, la décision cantonale ne viole pas le droit fédéral en tant qu'elle ne retient pas l'existence de circonstances particulièrement favorables et refuse, pour ce motif, l'octroi du sursis.
3.
Il s'ensuit que le recours doit être rejeté, dans la mesure où il est recevable. Comme il était dénué de chance de succès, la demande d'assistance judiciaire doit être rejetée (art. 64 al. 1 LTF). Le recourant, qui succombe, supporte les frais judiciaires, dont le montant sera fixé en tenant compte de sa situation financière, laquelle n'apparaît pas favorable (art. 65 al. 2 et 66 al. 1 LTF).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
La demande d'assistance judiciaire est rejetée.
3.
Les frais judiciaires, arrêtés à 1'200 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué aux parties et à la Cour d'appel pénale du Tribunal cantonal du canton de Vaud.
Lausanne, le 27 octobre 2021
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
La Présidente : Jacquemoud-Rossari
La Greffière : Paris